如何在Kubernetes部署文件中引用变量?

时间:2017-09-20 09:28:44

标签: kubernetes

有时,部署yaml文件中的变量没有预先指定,只有在部署期间才会知道(例如容器映像的名称和标记)。

通常我们在yaml文件中放置一个标记文本(例如{{IMAGE_NAME}})并使用bash文本操作工具将其更改为部署文件中的实际值。

有没有办法使用环境变量或其他方法(比如在运行kubectl create时使用参数)而不是文本替换工具?

2 个答案:

答案 0 :(得分:2)

我所做的是在部署配置中使用envvars,然后使用envsubst命令的输出运行apply / create

deployment.yaml文件:

[...]
spec:
  replicas: $REPLICA_COUNT
  revisionHistoryLimit: $HISTORY_LIM
[...]
部署期间

$ export REPLICA_COUNT=10 HISTORY_LIM=10
$ envsubst < deployment.yaml | kubectl apply -f -

答案 1 :(得分:1)

不幸的是,没有办法直接使用kubectl的环境变量。常见的解决方案是使用某种模板语言+处理建议。