2015-09-05 61 views
2

我有一個kubernetes RC/pod包含圖像的容器,如:foobar/my-image:[branch]-latest其中「分支」是git分支(「主」等)。如何使用滾動更新重新拉取容器圖像?

使用滾動更新強制RC重新拉取圖像以獲取最新版本的最佳方法是什麼?蠻力方法是簡單地刪除RC並重新創建它,但這會導致服務停機。

滾動更新只有在指定了確切的圖片標籤而不是像「最新」這樣的東西時纔有可能?

回答

5

您應該能夠使用您當前使用的是rolling update指定相同的圖像名稱:

kubectl rolling-update <replication-controller-name> --image=foobar/myimage:[branch]-latest 

這將(幕後)創建一個新的複製控制器,是現有的複製副本然後逐步調整每個複製控制器的大小,直到舊複製控制器的容量爲零,並且新容量具有所需數量的容器,最後刪除舊容器並重命名新容器以使用舊名稱。

+1

一旦向選擇器添加了「部署」按鍵並將imagePullPolicy更改爲「始終」,就可以完美實現了。謝謝! – bk0

0

如果要滾動更新以重新拉取圖片,則必須使用:latest標記或指定圖片拉取策略Always(請參閱Kubernetes文檔中的Updating Images)。

在你的情況下,你不能使用:latest標籤,因爲你需要特定分支上的最新圖像,所以使用拉取策略是一種方法。

dns-frontend-pod.yaml是一個示例文件,顯示如何使用Always的圖像拉取策略。

+0

但我的問題是,我不想更改任何RC。我只希望Kubernetes能夠在滾動的基礎上重新提取圖片。這可能嗎? – bk0