Kubernetes学习笔记-环境变量的使用
如果项目需要一些灵活配置,减少硬编码或者避免敏感信息的暴露,可以考虑使用Kubernetes Pod下的容器的环境变量。
Pod容器设置环境变量的方式:
- 可以通过Deployment配置文件的env字段来设置环境变量
- value
env:- name: ACTIVE_PROFILEvalue: "dev"
- valueFrom
- fieldRef 引用字段
- configMapKeyRef 引用ConfigMap指定变量
- secretKeyRef 引用Secret指定变量
env:- name: NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace- name: ENV_PARAM1valueFrom:configMapKeyRef:name: sample-cmkey: env.param1- name: ENV_PARAM2valueFrom:secretKeyRef:name: sample-secretkey: env.param2
- 可以通过Deployment配置文件的envFrom字段来设置环境变量。
- configMapRef 引用ConfigMap全部变量
- secretRef 引用Secret全部变量
envFrom:- configMapRef:name: sample-cm- secretRef:name: sample-secret
- 查看Pod容器的环境变量
- kubectl exec -it sample-service-76484b7b7c-m6qjh -n sample1 – printenv
- 可以看到环境变量里面包含了envFrom引用的ConfigMap和Secret的Key/Value、env中设置的Key/Value、Service的相关变量。优先级:Service的变量 > env显式定义的变量 > envFrom批量注入的变量