运行时将环境variables传递给kubernetes
在使用vanilla docker,compose或swarm时,我可以通过“-add-env FOO = bar”作为Docker cli参数来为运行时的容器定义一个env var值。 但是,在kubernetes中,我只看到如何在容器规范部分的.yml文件中强调值。
任何人都可以指出我如何在运行时传递它? (即使用“kubectl apply …”时传递一个env var)
谢谢! 真的很感谢任何帮助!
最好的祝福,
我假设“运行时”实际上是指当调用kubectl create / apply时的意思。 不,这是不可能的。
你想要做的是可能通过一些模板引擎运行你的清单。 你可以做的最简单的事情就是通过像cat manifest | sed 's/PLACEHOLDER/VALUE/'
这样的sed来pipe你的模板 cat manifest | sed 's/PLACEHOLDER/VALUE/'
应用到kubectl中,所以你可以在manifest中使用占位符string来正确定义ENV,这个占位符string在被推送到kubectl之前被replace。 一个更先进的解决scheme,我通常会build议,是熟悉掌舵图表,你可以例如运行helm upgrade my-release --reuse-vars --set my.var=value
使用您select的模板语言非常简单。 比如用erb你可以做erb deployment.erb.yaml | kubectl apply -f -
erb deployment.erb.yaml | kubectl apply -f -
。
对于大多数简单的用例,您可以使用envsubst: cat deployment.yaml | envsubst | kubectl apply -f -
cat deployment.yaml | envsubst | kubectl apply -f -
- 如何正确configurationVirtualBox的DNSconfiguration来parsing本地networking中的docker容器主机名?
- IntelliJ IDEA或Eclipse可以在一个操作系统上运行UI,但是在另一个操作系统的容器上编译 – 生成 – 执行?
- Docker何时启动?
- 运行在Kubernete Pods上的烧瓶应用程序不configuration端口
- 无法从待处理状态恢复docker群
- Docker中的PostgreSQL VS安装在服务器上(在生产应用程序中)
- 在Docker中提交交互式容器
- Docker + Kubernetes构build
- Docker容器是否共享一个Python GIL?