Rolling Update - 天天5分鐘玩轉 Docker 容器技術(140)

滾動更新是一次只更新一小部分副本,成功後,再更新更多的副本,最終完成全部副本的更新。滾動更新的最大的好處是零停機,整個更新過程始終有副本在運行,從而保證了業務的連續性。html

下面咱們部署三副本應用,初始鏡像爲 httpd:2.2.31,而後將其更新到 httpd:2.2.32。app

httpd:2.2.31 的配置文件以下:code

經過 kubectl apply 部署。htm

部署過程以下:blog

  1. 建立 Deployment httpd部署

  2. 建立 ReplicaSet httpd-551879778get

  3. 建立三個 Podit

  4. 當前鏡像爲 httpd:2.2.31容器

將配置文件中 httpd:2.2.31 替換爲 httpd:2.2.32,再次執行 kubectl apply配置

咱們發現了以下變化:

  1. Deployment httpd 的鏡像更新爲 httpd:2.2.32

  2. 新建立了 ReplicaSet httpd-1276601241,鏡像爲 httpd:2.2.32,而且管理了三個新的 Pod。

  3. 以前的 ReplicaSet httpd-551879778 裏面已經沒有任何 Pod。

結論是:ReplicaSet httpd-551879778 的三個 httpd:2.2.31 Pod 已經被 ReplicaSet httpd-1276601241 的三個 httpd:2.2.32 Pod 替換了。

具體過程能夠經過 kubectl describe deployment httpd 查看。

每次只更新替換一個 Pod:

  1. ReplicaSet httpd-1276601241 增長一個 Pod,總數爲 1。

  2. ReplicaSet httpd-551879778 減小一個 Pod,總數爲 2。

  3. ReplicaSet httpd-1276601241 增長一個 Pod,總數爲 2。

  4. ReplicaSet httpd-551879778 減小一個 Pod,總數爲 1。

  5. ReplicaSet httpd-1276601241 增長一個 Pod,總數爲 3。

  6. ReplicaSet httpd-551879778 減小一個 Pod,總數爲 0。

每次替換的 Pod 數量是能夠定製的。Kubernetes 提供了兩個參數 maxSurge 和 maxUnavailable 來精細控制 Pod 的替換數量,咱們將在後面結合 Health Check 特性一塊兒討論。

下一節咱們討論如何回滾。

書籍:
1.《天天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html

2.《天天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html

相關文章
相關標籤/搜索