zoukankan      html  css  js  c++  java
  • k8s的Rolling Update(滚动更新应用)

    滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新。滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性。

    下面我们部署三副本应用:

    初始镜像为 httpd:2.2.31,然后将其更新到 httpd:2.2.32

    httpd:2.2.31 的配置文件如下:

    执行部署

    部署过程如下:

    1. 创建 Deployment httpd

    2. 创建 ReplicaSet   httpd-5c44c97cb5  创建三个 Pod

    3. 当前镜像为 httpd:2.2.31

    将配置文件中 httpd:2.2.31 替换为 httpd:2.2.32,再次执行 kubectl apply

    当前有4个pod,3个可用 1个pod已经更新。一段时间后全部更新完毕,前后有一样是不变的 就是可用pod的数量一直维持为3个。

    我们发现了如下变化:

    1. Deployment httpd 的镜像更新为 httpd:2.2.32

    2. 新创建了 ReplicaSet  httpd-596db6fdc4,镜像为 httpd:2.2.32,并且管理了三个新的 Pod。

    3. 之前的 ReplicaSet  httpd-5c44c97cb5 里面已经没有任何 Pod。

    结论是:ReplicaSet  httpd-5c44c97cb5  的三个 httpd:2.2.31 Pod 已经被ReplicaSet  httpd-596db6fdc4 的三个 httpd:2.2.32 Pod 替换了。

    具体过程可以通过 kubectl describe deployment httpd 查看。

     

    每次只更新替换一个 Pod:

    每次只更新替换一个 Pod:

    1. ReplicaSet httpd-596db6fdc4增加一个 Pod,总数为 1。

    2. ReplicaSet httpd-5c44c97cb5 减少一个 Pod,总数为 2。

    3. ReplicaSet httpd-596db6fdc4 增加一个 Pod,总数为 2。

    4. ReplicaSet httpd-5c44c97cb5  减少一个 Pod,总数为 1。

    5. ReplicaSet httpd-596db6fdc4 增加一个 Pod, 总数为 3。

    6. ReplicaSet httpd-5c44c97cb5  减少一个 Pod,总数为 0。

     每次替换的 Pod 数量是可以定制的。Kubernetes 提供了两个参数 maxSurge 和 maxUnavailable 来精细控制 Pod 的替换数量。

  • 相关阅读:
    greenDAO缓存遇到的大坑的解决方法
    hdoj-1004-Let the Balloon Rise(map排序)
    hdu-2673-shǎ崽 OrOrOrOrz(水题)
    hdoj-1106-排序(stringstream)
    CodeForces
    hdoj-1027-Ignatius and the Princess II(逆康拓展开)
    Alex and broken contest CodeForces
    hdoj-1715-大菲波数(大斐波那契数列)
    nyoj-155-求高精度幂(java大数)
    nyoj-655-光棍的yy(大斐波那契数列)
  • 原文地址:https://www.cnblogs.com/benjamin77/p/9936440.html
Copyright © 2011-2022 走看看