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