2017-09-20 54 views
1

有時,部署yaml文件中存在未預先指定且僅在部署過程中才知道的變量(例如容器映像的名稱和標記)。如何引用Kubernetes部署文件中的變量?

通常,我們在yaml文件中放置標記文本(例如{{IMAGE_NAME}}),並使用bash文本處理工具在部署文件中將其更改爲實際值。

有沒有辦法使用環境變量或其他方法(如運行kubectl create時使用參數)而不是文本替換工具?

回答

1

不幸的是,沒有辦法直接使用環境變量與kubectl。常見的解決方案是按照您的建議使用某種模板語言+處理。

1

我所做的一切是在部署配置使用envvars中,然後運行與輸出apply/createenvsubst命令:

deployment.yaml:

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

部署期間:

$ export REPLICA_COUNT=10 HISTORY_LIM=10 
$ envsubt < deployment.yaml | kubectl apply -f - 
相關問題