Kubernetes——StatefulSet控制器资源的金丝雀部署

金丝雀部署 StatefulSet 控制器的资源

一、金丝雀部署

  将处于暂存状态的更新操作的 partition 定位于 Pod 资源的最大索引号,即可放出一只金丝雀,由其测试第一轮的更新操作,在确认无误后通过修改 partition 属性的值更新其他的 Pod 对象是一种更为稳妥的更新操作。


  StatefulSet 控制器 myapp 资源的分区号设置为 Pod 资源的最大索引号 2,将会触发 myapp-2 的更新操作:

kubectl path statefulset myapp -p '{"spec":{"updateStrategy":{"rollingUpdate":{"partition":2}}}}'

  位于非更新区域内的其他 Pod 资源仍然不会更新到新的镜像版本,哪怕它们被删除后重建亦是如此。

二、分段更新

  金丝雀部署,第一批更新经过测试验证通过之后,用户便可启动后续其他 Pod 资源的更新操作。

  在待更新的 Pod 资源数量极少的情况下,直接将 partition 属性的值设置为 0,它将逆序完成后续所有 Pod 资源的更新。而当待更新的 Pod 资源较多时,用户也可以将 Pod 资源以线性或指数级增长的方式来分阶段完成更新操作,操作过程无非是分步更新 partition 属性值。

  例如,将 myapp 控制器的分区号依次设置为 1、0 以完成剩余 Pod 资源的线性分步更新。

posted @ 2022-06-29 15:54  左扬  阅读(185)  评论(0编辑  收藏  举报
levels of contents