有時,部署yaml文件中存在未預先指定且僅在部署過程中才知道的變量(例如容器映像的名稱和標記)。如何引用Kubernetes部署文件中的變量?
通常,我們在yaml文件中放置標記文本(例如{{IMAGE_NAME}}
),並使用bash文本處理工具在部署文件中將其更改爲實際值。
有沒有辦法使用環境變量或其他方法(如運行kubectl create
時使用參數)而不是文本替換工具?
有時,部署yaml文件中存在未預先指定且僅在部署過程中才知道的變量(例如容器映像的名稱和標記)。如何引用Kubernetes部署文件中的變量?
通常,我們在yaml文件中放置標記文本(例如{{IMAGE_NAME}}
),並使用bash文本處理工具在部署文件中將其更改爲實際值。
有沒有辦法使用環境變量或其他方法(如運行kubectl create
時使用參數)而不是文本替換工具?
不幸的是,沒有辦法直接使用環境變量與kubectl。常見的解決方案是按照您的建議使用某種模板語言+處理。
我所做的一切是在部署配置使用envvars中,然後運行與輸出apply
/create
從envsubst
命令:
deployment.yaml:
[...]
spec:
replicas: $REPLICA_COUNT
revisionHistoryLimit: $HISTORY_LIM
[...]
部署期間:
$ export REPLICA_COUNT=10 HISTORY_LIM=10
$ envsubt < deployment.yaml | kubectl apply -f -