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