最近更新时间:2021-04-27 20:18:25
密码、令牌、密钥等敏感信息,可以使用Secret来管理和配置。Secret 是key-value 类型的键值对,可以通过控制台创建对应的Secret对象,也可以通过挂载数据卷、环境变量或在容器的运行命令中使用 Secret。
注:当选择指定key挂载时,可以通过Items向特定路径挂载,如挂载路径是 /etc/config,子路径是dev,最终会存储在/etc/config/dev下。
方式二:通过定义容器环境变量
首先将Secret的data进行Base64转码
# echo -n 'admin' | base64
YWRtaW4=
# echo -n '12345' | base64
MTIzNDU=
secret-test.yaml示例:
apiVersion: v1
kind: Secret
metadata:
name: secret-test
type: Opaque
data:
username: YWRtaW4=
password: MTIzNDU=
创建secret-test.yaml
# kubectl apply -f secret-test.yaml
将用户名和密码保存在本地的./username.txt和./password.txt 文件里。
# echo -n 'admin' > ./username.txt
# echo -n '12345' > ./password.txt
创建secret
# kubectl create secret generic secret-test --from-file=./username.txt --from-file=./password.txt
secret-volume.yaml示例:
apiVersion: v1
kind: Pod
metadata:
name: pod1-test
spec:
containers:
- name: container-test
image: ksyun/nginx:latest
volumeMounts: #数据卷的挂载点
- name: secret-volume
mountPath: /etc/config
volumes: #在pod级别设置卷,然后将其挂载到pod内的容器中
- name: secret-volume
secret:
secretName: secret-test #挂载的Secret名称
restartPolicy: Never
secret-env.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod2-test
spec:
containers:
- name: container-test
image: ksyun/nainx:latest
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: secret-test
key: username
- name: SECRET_PASSWORD
valueFrom:
secretKeyRef:
name: secret-test
key: password
restartPolicy: Never
纯净模式