@P Ekambaram 是正确的,但我想进一步探讨这个话题并解释“为什么和如何”。
在 Kubernetes 上传递密码时,强烈建议使用加密,您可以使用秘密来做到这一点。
创建你自己的秘密( Doc )
为了能够使用@P Ekambaram 所描述的秘密,您需要在您的 kubernetes 集群中有一个秘密。
要轻松创建秘密,您还可以从生成器创建秘密,然后将其应用于 Apiserver 上创建对象。生成器应在kustomization.yaml
目录中指定。
例如,要从文字 username=admin
和 生成秘密password=secret
,您可以将秘密生成器指定 kustomization.yaml
为
# Create a kustomization.yaml file with SecretGenerator
$ cat <<EOF >./kustomization.yaml
secretGenerator:
- name: db-user-pass
literals:
- username=admin
- password=secret
EOF
应用 kustomization 目录来创建 Secret 对象。
$ kubectl apply -k .
secret/db-user-pass-dddghtt9b5 created
使用 Secrets 作为环境变量( Doc )
这是一个使用环境变量中的秘密的 pod 示例:
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: mycontainer
image: redis
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: mysecret
key: username
- name: SECRET_PASSWORD
valueFrom:
secretKeyRef:
name: mysecret
key: password
restartPolicy: Never
来源:这里和这里。