Rolling Update - 每天5分钟玩转 Docker 容器技术(140)
滾動更新是一次只更新一小部分副本,成功后,再更新更多的副本,最終完成所有副本的更新。滾動更新的最大的好處是零停機,整個更新過程始終有副本在運行,從而保證了業務的連續性。
下面我們部署三副本應用,初始鏡像為 httpd:2.2.31,然后將其更新到 httpd:2.2.32。
httpd:2.2.31 的配置文件如下:
通過?kubectl apply?部署。
部署過程如下:
創建 Deployment?httpd
創建 ReplicaSet?httpd-551879778
創建三個 Pod
當前鏡像為?httpd:2.2.31
將配置文件中?httpd:2.2.31?替換為?httpd:2.2.32,再次執行?kubectl apply。
我們發現了如下變化:
Deployment?httpd?的鏡像更新為?httpd:2.2.32
新創建了 ReplicaSet?httpd-1276601241,鏡像為?httpd:2.2.32,并且管理了三個新的 Pod。
之前的 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:
ReplicaSet?httpd-1276601241?增加一個 Pod,總數為 1。
ReplicaSet?httpd-551879778?減少一個 Pod,總數為 2。
ReplicaSet?httpd-1276601241?增加一個 Pod,總數為 2。
ReplicaSet?httpd-551879778?減少一個 Pod,總數為 1。
ReplicaSet?httpd-1276601241?增加一個 Pod,總數為 3。
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
總結
以上是生活随笔為你收集整理的Rolling Update - 每天5分钟玩转 Docker 容器技术(140)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 偏度与峰度的正态性分布判断
- 下一篇: 房贷利率一涨再涨,为什么排队买房的越来越