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

通常,我们在yaml文件中放置标记文本(例如{{IMAGE_NAME}}),然后使用bash文本操作工具在部署文件中使用实际值对其进行更改。

有没有一种方法可以使用环境变量或其他方法(例如在运行kubectl create时使用参数)来代替文本替换工具?

最佳答案

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

deployment.yaml文件:

[...]
spec:
  replicas: $REPLICA_COUNT
  revisionHistoryLimit: $HISTORY_LIM
[...]

部署期间:
$ export REPLICA_COUNT=10 HISTORY_LIM=10
$ envsubst < deployment.yaml | kubectl apply -f -

关于kubernetes - 如何在Kubernetes部署文件中引用变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46318262/

10-16 19:15