Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何引用Kubernetes部署文件中的变量?_Kubernetes - Fatal编程技术网

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

如何引用Kubernetes部署文件中的变量?,kubernetes,Kubernetes,有时,部署yaml文件中有一些变量不是预先指定的,只有在部署期间才知道(例如容器映像的名称和标记) 通常我们在yaml文件中放置一个标记文本(例如,{{IMAGE\u NAME}}),并使用bash文本操作工具在部署文件中使用实际值对其进行更改 有没有一种方法可以使用环境变量或其他方法(如在运行kubectl create时使用参数)而不是文本替换工具?不幸的是,没有方法直接将环境变量用于kubectl。常见的解决方案是按照您的建议使用某种模板语言+处理。我所做的是在部署配置中使用envvars

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

通常我们在yaml文件中放置一个标记文本(例如,
{{IMAGE\u NAME}}
),并使用bash文本操作工具在部署文件中使用实际值对其进行更改


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

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

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

deployment.yaml文件:

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

$ export REPLICA_COUNT=10 HISTORY_LIM=10
$ envsubst < deployment.yaml | kubectl apply -f -
$export REPLICA\u COUNT=10历史记录\u LIM=10
$envsubst