1. 程式人生 > 實用技巧 >k8s-業務映象版本升級及回滾

k8s-業務映象版本升級及回滾

測試

在指定的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,回到指定的版本