使用nodejs应用程序中的k8s机密



我已经创建了以下示例程序,我需要它来创建机密值

index.js

const express = require("express");
const port = process.env.PORT || 3000;

app = express();
app.get('/', (req, res) => (
res.send("hello from k8s"))
)
app.listen(3000, function () {
console.log("my secret ---> ", process.env.TOKEN1)
console.log("server is listen to port", port)
})

这是秘密。yaml

apiVersion: v1
kind: Secret
metadata:
name: secert1
namespace: trail
type: Opaque
data:
TOKEN1: cmVhbGx5X3NlY3JldF92YWx1ZTE=

这就是我如何连接它们之间的

apiVersion: apps/v1
kind: Deployment
metadata:
name: app1
namespace: trail
spec:
replicas: 1
template:
metadata:
labels:
app: app1
spec:
containers:
- name: app1
image: myimage
imagePullPolicy: Always
ports:
- containerPort: 5000
env:
- name: myenv
valueFrom:
secretKeyRef:
name: secert1
key: TOKEN1

当部署程序时,我在k8s日志中看到


my secret --->  undefined
server is listen to port 5000

我在这里错过了什么?此外,假设我有20多个属性需要从我的应用程序中读取,有没有更好的方法,或者只是映射秘密中的每个键值?

name是env-var的密钥,因此对于您所拥有的内容,应该是process.env.myenv。您可能希望使用envFrom选项。

最新更新