向Pod中传递环境变量
环境变量是用来做容器配置的非常重要的环节,容器制作时,如果配置文件已经被固定,这就意味着容器只能适用于一种环境。所以在容器制作过程中如果需要向容器内部传送环境变量来改变配置,则需要使用卷挂载或使用enterypoint
脚本来实现。否则k8s向容器中传递的变量除了能出现在容器内的printenv
中之外,其他将毫无意义。
以下以ikubernetes/demoapp:v1.0
镜像为例,此境支持HOST
和PORT
变量的接收。
变量传递HOST
1.创建资源清单。
1 | root@k8s-master01:~/yaml/chapter01# vim mypod-with-env-var.yaml |
2.引用资源清单
1 | root@k8s-master01:~/yaml/chapter01# kubectl apply -f mypod-with-env-var.yaml |
3.验证
1 | root@k8s-master01:~/yaml/chapter01# kubectl exec mypod-with-env-var -- ss -tnl |
变量传递HOST,PORT
1.修改资源清单
1 | root@k8s-master01:~/yaml/chapter01# vim mypod-with-env-var.yaml |
2.应用资源清单
1 | root@k8s-master01:~/yaml/chapter01# kubectl apply -f mypod-with-env-var.yaml |
3.验证
1 | root@k8s-master01:~/yaml/chapter01# kubectl exec mypod-with-env-var -- ss -tnl |
注意事项
- 向容器内传递的变量,容器内必须存在,否则将没有意义
- ENV是容器级别的字段,只在容器内部生效,一个pod内可以存在多个容器
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 MyLinuxOPS!