Kubernetes集羣實踐(09)滾動更新和回滾

滾動更新是一次更新一小部分,成功後再更新更多的副本,最終完成所有版本的更新,其中ECK部署ElasticSearch的時候就是這樣更新的,其最大的好處就是零停機,保證業務的連續性。實際操作常用的就是修改yaml文件的image字段,設置爲新的版本,操作簡單,這裏就不詳細說明,但這個章節主要是筆記下回滾的內容。
具體操作爲在編寫yaml文件的時候,增加spec.revisionHistoryLimit屬性,默認情況下Kubernetes指揮保留最近幾個revision,而修改此屬性可以增加revision的數量(一般默認的也夠了)。
在執行yaml文件部署的時候帶上--recored參數,例如:

kubectl apply -f traefik-deploy-v1.yaml --record

其作用就是將當前的命令記錄到revision記錄中,如此可以知道每個revision對應的是哪個文件。通過如下文件查看revision歷史記錄

kubectl rollout history daemonset traefik

其中‘daemonset'是部署traefik的類型,'CHANGE-CAUSE就是--record的結果。如果要回滾到某個版本,比如revision 4,可以執行如下命令:

kubectl rollout undo daemonset traefik --to-revision=4

建議:一定要在kubectl apply 時加上 --record參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章