2016-04-28 190 views
0

我有一個Deployment 3副本運行圖像172.20.20.20:5000/my_app莢的圖像,位於在我的私人註冊表。升級部署的豆莢

我想要做一個滾動更新的部署時,我推新latest版本圖像到我的註冊表。

我推新形象這種方式(標籤3.0至最新):

$ docker tag 172.20.20.20:5000/my_app:3.0 172.20.20.20:5000/my_app 
$ docker push 172.20.20.20:5000/my_app 

但沒有任何反應。豆莢的圖像沒有升級。這是我的部署定義:

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: myapp-deployment 
spec: 
    replicas: 3 
    template: 
    metadata: 
     labels: 
     app: myapp 
    spec: 
     containers: 
     - name: app 
     image: 172.20.20.20:5000/my_app:latest 
     ports: 
     - containerPort: 8080 

有沒有辦法自動做到這一點?我應該像ReplicaControllers那樣運行一個類似rolling-update的命令嗎?

回答

1

爲了upgrade a Deployment您必須修改與新的圖像部署資源。因此,例如,將172.20.20.20:5000/my_app:v1更改爲172.20.20.20:5000/my_app:v2。由於您只是在Docker註冊表中修改映像,因此不會注意到此更改。

如果(手動)殺個人吊艙,部署將重新啓動它們。由於部署映像指定「最新」標籤,Kubernetes將下載最新版本(現在稱爲「v3」),因爲暗含的"Always" ImagePullPolicy

+0

謝謝。它幫了我很多:) –

+0

然後,如果我想自動執行更新過程,是否需要手動殺死Pod?真?請檢查此:http://stackoverflow.com/questions/36920171/how-can-i-edit-a-deployment-without-modify-the-file-manually –

+0

@bigdestroyer不,如果您使用不同的圖像版本的部署將爲您處理所有事情。令人困惑的是,由於您沒有指定任何標籤,因此您將新版本推送到註冊表爲'最新'。 –