揭秘:如何为 Kubernetes 实现原地升级

揭秘:如何为 Kubernetes 实现原地升级

作者 | 王思宇(酒祝) 阿里云技术专家

参与阿里巴巴云原生文末留言互动,即有机会获得赠书福利及作者答疑!

概念介绍

原地升级一词中,“升级”不难理解,是将应用实例的版本由旧版替换为新版。那么F w ] J ~ ] 6 p b如何结合 Kubernetes 环境来理解“原地”呢?

我们先来看看 K8s 原生 workload 的发布方式。这里假设我们需要部署一个应用,包括 fog m 3 R Q @ W w 4o、bar 两个容器在 Pod 中。其中,foo 容器第一次部署时用的镜像版本是 v1,我们需要将其升级为 v2 版本镜像,该怎么y M 8 7 5 } f K n做呢?

  • 如果这个应用使用 Deplog 4 zyment 部署,那么升级过程中 Deployment 会触发新版本 ReplicaSet 创建 Pod,并删除旧版本 Pod。如下图所示:

揭秘:如何为 Kubernetes 实现原地升级

在本次升级过程中,原 Pod 对象被删除,一个新 Pod 对象被创建。新 Pod 被调度到另一个