kubectl apply
每次更新應用時 Kubernetes 都會記錄下當前的配置,保存為一個 revision(版次),這樣就可以回滾到某個特定 revision。
默認配置下,Kubernetes 只會保留最近的幾個 revision,可以在 Deployment 配置文件中通過 revisionHistoryLimit
屬性增加 revision 數量。
下面實踐回滾功能。應用有如下三個配置文件 httpd.v1.yml
,httpd.v2.yml
和 httpd.v3.yml
,分別對應不同的 httpd 鏡像 2.4.16
,2.4.17
和 2.4.18
:
通過 kubectl apply
部署並更新應用:
--record
的作用是將當前命令記錄到 revision 記錄中,這樣我們就可以知道每個 revison 對應的是哪個配置文件。通過 kubectl rollout history deployment httpd
查看 revison 歷史記錄。
CHANGE-CAUSE
就是 --record
的結果。如果要回滾到某個版本,比如 revision 1,可以執行命令 kubectl rollout undo deployment httpd --to-revision=1
:
此時,revison 歷史記錄也會發生相應變化。
revison 1 變成了 revison 4。不過我們可以通過 CHANGE-CAUSE
知道每個 revison 的具體含義。所以一定要在執行 kubectl apply
時加上 --record
參數。
滾動更新我們就討論到這里,下一節開始學習 k8s 的 Health Check 功能。
書籍:
1.《每天5分鍾玩轉Docker容器技術》
https://item.jd.com/16936307278.html
2.《每天5分鍾玩轉OpenStack》
https://item.jd.com/12086376.html