本文介绍灰度发布新版本服务,系统运行一段时间,新版本服务稳定后,如何删除老版本服务。

前提条件

  • 您已成功部署一个Kubernetes集群,参见创建Kubernetes 集群。
  • 您可以通过Kubectl连接到Kubernetes集群,参见通过 kubectl 连接 Kubernetes 集群。
  • 您已部署老版本服务,参见步骤1:部署服务,同时已灰度发布新版本服务,参见步骤2:发布新版本服务。

通过命令行删除

执行以下命令,编辑步骤2:发布新版本服务已经部署的yaml文件,删除老版本的服务。

说明 请将annotations一并删除。

$ kubectl get ingress gray-release-02

通过控制台删除

  1. 登录容器服务管理控制台。
  2. 在 Kubernetes 菜单下,单击左侧导航栏中的应用 > 路由,进入路由列表页面。
  3. 选择所需的集群和命名空间,选择前面创建的路由,并单击操作列的变更
    路由
  4. 在弹出的对话框中,对 Ingress 进行修改:
    1. 规则 > 服务区域,删除老版本服务规则。
      服务规则
    2. 单击更新
  1. 返回路由列表页面,您可看到只有一条路由规则,指向新版本的 new-nginx 服务。
    路由
  2. 登录 Master 节点,执行 curl 命令,查看路由的访问情况。
    $ curl -H "Host: www.example2.com" http://<EXTERNAL_IP>

    nodes

可以看到,现在的请求全部被路由到了新版本的服务中,至此完成了灰度发布的整个周期。最后,您也可以删除老版本的deployment和service。