2017-06-06 65 views
3

我有一個後端服務部署到Kubernetes。 無論何時我想部署我構建我的泊塢窗圖像,使用標記(例如1.1.0)將它推送到谷歌碼頭註冊表並更新我的部署yaml。配置圖中的Kubernetes圖像配置

但是,更新此文件並創建另一個提交是PITA。特別是因爲我有一個生產和臨時環境(實際上是2個命名空間) 我最近發現了關於Kubernetes中的ConfigMaps。

所以我想知道是否有可能存儲一個值與ConfigMap中的圖像標籤並使用它?到目前爲止我還沒有找到辦法。

有什麼好的選擇,所以我不必在git中存儲關於當前版本的信息?這裏最好的做法是什麼?使用latest標籤我猜不是。

我想讓我的CI在我推動掌握或開發(我使用gitlab CI)時進行部署,因此任何在命令行上很容易執行而沒有大量sed的方法將不勝感激。

回答

2

一個簡單的解決方案是使用kubectl set image觸發部署的滾動更新:

kubectl set image deployment/foobar <container_name>=<new_image:new_tag> 

,你可以用你的git的承諾id作爲圖像標籤。

+0

非常感謝。這正是我正在尋找的。 – Bantak

+0

這種方法的問題是您最終會在存儲庫中存儲過時的部署YAML。我會建議編寫一個腳本,用新的image:tag更新YAML,然後調用'kubectl apply'。所有主要語言都有YAML庫,因此編寫這樣的腳本將很容易。 –