您可以通过使用秘密或配置映射。当您使用的数据是敏感的(例如密码)时使用“秘密”,当数据不是敏感的时使用“配置地图”。
在Pod定义中,指定容器应从Secret中提取值:
api版本:v1种类:吊舱元数据:标签:上下文:docker-k8s-lab名称:mysql pod名称:mysql-pod规格:容器:-图片:“mysql:latest”名称:mysql端口:-集装箱端口:3306envFrom(环境自):-秘书参考:名称:mysql-secret
请注意,此语法仅在Kubernetes 1.6或更高版本中可用。在Kubernetes的早期版本中,您必须手动指定每个值,例如:
环境:-名称:MYSQL_USER值从:secretKeyRef:名称:mysql-secret键:MYSQL_USER
(注意:环境价值
将数组作为值)
并对每个值进行重复。
无论您使用哪种方法,现在都可以定义两个不同的Secret,一个用于生产,另一个用于开发。
dev-secret.yaml:
api版本:v1kind:秘密元数据:名称:mysql-secret类型:不透明数据:MYSQL_用户:bXlzcWwKMYSQL_密码:bXlzcWwKMYSQL_数据库:c2FtcGxlCg==MYSQL_ROOT_密码:c3VwZXJzZWNyZXQK
prod-secret.yaml:
api版本:v1种类:秘密元数据:名称:mysql-secret类型:不透明数据:MYSQL_USER:am9obgo(我的SQL用户)=MYSQL_密码:c2VjdXJlCg==MYSQL_数据库:cHJvZC1kYgo=MYSQL_ROOT_密码:cm9vdHkK
并将正确的秘密部署到正确的Kubernetes集群:
kubectl配置use-context开发kubectl create-f dev-secret.yaml公司kubectl配置use-context产品kubectl create-f产品机密.yaml
现在,每当Pod启动时,它都会根据Secret中指定的值填充其环境变量。