k8s-業務映象版本升級及回滾
阿新 • • 發佈:2020-07-17
測試
在指定的deployment中通過kubectl set image指定新版本的映象:tag 來實現更新程式碼的目的。
構建三個不同版本的nginx映象,第一次使用v1版本,後組逐漸升級到v2與v3,測試映象版本升級與回滾操作
映象升級到指定版本
方法一: 1、kubectl apply -f nginx.yaml --record=true #--record=true,記錄執行升級的kubectl命令;需要把業務的 yml 檔案中的映象,修改到指定版本 方法二: 1、kubectl set image deployment/linux-tomcat-app1-deployment linux-tomcat-app1-container=harbor.linux.com/linux/tomcat-app1:v3 -n linux #指定 yml 中容器的名稱,以及指定這個容器所對應的映象地址;一個 pod 中可能有多個容器
回滾到上一個版本
1、kubectl rollout history deployment/linux-tomcat-app1-deployment -n linux REVISION CHANGE-CAUSE 1 kubectl apply --filename=tomcat-app1.yaml --record=true 2 kubectl apply --filename=tomcat-app1.yaml --record=true 3 kubectl apply --filename=tomcat-app1.yaml --record=true #檢視指定namespace中deployment的升級歷史版本資訊;如果 yml 檔案執行過 delete 操作,則沒有歷史版本資訊,因為 deployment 會被刪除 2、kubectl rollout undo deployment/linux-tomcat-app1-deployment -n linux #指定 deployment,回滾到該 deployment 歷史版本中的上一個版本 3、kubectl rollout history deployment/linux-tomcat-app1-deployment -n linux 1 kubectl apply --filename=tomcat-app1.yaml --record=true 3 kubectl apply --filename=tomcat-app1.yaml --record=true 4 kubectl apply --filename=tomcat-app1.yaml --record=true #會發現會把版本 2 刪除,重新建立個版本 4,如果想會到版本 1,則在次回滾只會把版本 3 刪除,重新建立個版本 5。
回滾到指定版本
1、kubectl rollout undo deployment/linux-tomcat-app1-deployment --to-revision=1 -n linux
#通過--to-revision,回到指定的版本