本文档主要通过生产环境灰度引流验证,确认Kubernetes 集群业务服务正常之后,我们如何逐步将线上流量切换到Kubernetes 集群。主要包括基于DNS域名解析切流、通过客户端切流 两种方式。

前提条件

为了降低业务风险,切流之前,请务必确保 Kubernetes 集群应用服务正常,您可通过测试域名或备案域名对Kubernetes 集群再做一次业务功能回归验证,请参见应用回归测试

DNS切流

若客户端是通过备案域名访问集群服务,可通过调整DNS配置逐步实现生产流量不停机迁移。

操作步骤
  1. 获取新Kubernetes 集群默认SLB IP地址。本示例为39.98.8.112
    1. 登录容器服务管理控制台,在左侧导航栏选择路由与负载均衡 > 路由,选择集群k8s-piggymetrics-cluster及命名空间default,获取目标路由的端点39.98.8.112
  2. 前往备案域名所在DNS服务商,将 Kubernetes 集群的 SLB的IP地址39.98.8.112添加到备案域名piggymetrics.com的后端IP列表中。
  3. 请重点观察线上生产流量访问Kubernetes集群是否正常。请参见确认应用日志
    说明 您也可基于自身的监控体系,确认 Kubernetes 集群的流量和业务服务是否正常。
  4. 观察一段时间,在确认生产流量访问Kubernetes集群正常后,请前往备案域名所在DNS服务商,将Swarm集群的SLB IP地址从备案域名的后端IP地址列表中删除。

    本示例,将39.98.98.230 这个Swarm集群SLB IP地址从piggymetrics.com域名的后端IP地址中删除。

客户端切流

若客户端通过HostIP访问Swarm SLB IP 或者通过测试域名访问Swarm集群;则由于测试域名跟集群标识有关,导致Swarm集群测试域名与Kubernetes 集群测试域名不一致;那么在原容器服务Swarm集群基础上无法做到不停机迁移业务,请选择业务量小的时候进行业务迁移。

操作步骤

  1. 获取新Kubernetes 集群默认SLB IP地址。本示例为39.98.8.112
    1. 登录容器服务管理控制台,在左侧导航栏选择路由与负载均衡 > 路由,选择集群k8s-piggymetrics-cluster及命名空间default,获取目标路由的端点39.98.8.112
  2. 通过升级客户配置或代码方式,将39.98.8.112地址添加到客户端访问列表中。
  3. 请重点观察线上生产流量访问Kubernetes集群是否正常。请参见确认应用日志
    说明 您也可基于自身的监控体系,确认 Kubernetes 集群的流量和业务服务是否正常。
  4. 观察一段时间,在确认生产流量访问Kubernetes集群正常后,请通过升级客户配置或代码方式,将Swarm集群的SLB IP地址从备案域名的后端IP地址列表中删除。

    本示例,将39.98.98.230 这个Swarm集群SLB IP地址从客户端访问列表中删除。