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

mah*_*dix 2 kubernetes

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

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

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

小智 5

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

deployment.yaml 文件:

[...]
spec:
  replicas: $REPLICA_COUNT
  revisionHistoryLimit: $HISTORY_LIM
[...]
Run Code Online (Sandbox Code Playgroud)

部署期间:

$ export REPLICA_COUNT=10 HISTORY_LIM=10
$ envsubst < deployment.yaml | kubectl apply -f -
Run Code Online (Sandbox Code Playgroud)