代码之家  ›  专栏  ›  技术社区  ›  Mugen

在不中断服务的情况下重新创建部署

  •  0
  • Mugen  · 技术社区  · 7 年前

    在以下创建新部署的场景中:

    kubectl apply -f deployment.yaml

    /Mugen$ kubectl get deploy
    NAME        DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    my-server   1         1         1            1           1h
    

    我正在改变我的生活 yaml 并运行 apply 再次收到一条消息,说明部署已更新。

    但随后我看到了两个用于部署的pods,并指出有两个实例,而只有一个是最新的。

    /Mugen$ kubectl get deploy
    NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    mysql-server   1         2         1            2           1h
    

    据我所知,如果我 kubectl replace --force 我实际上会删除当前的部署并创建一个新的部署。

    但是,这将导致服务中断。

    是否有适当的方法来创建新部署并仅在成功部署后删除前一个部署?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Raunak Jhawar    7 年前

    优雅地排干所有豆荚(然后删除豆荚),继续添加具有新功能的新豆荚。

    请注意,在生产设置中,不建议重新创建部署策略,因为这可能会导致停电和服务中断。或者,您也可以阅读更多关于不同部署策略的信息,如Canary发布(也可以阅读Blue/Green)和/或RollingUpdate for Production Management。

    推荐文章