banner
欢迎观看

通过副本控制实现金丝雀发布

Scroll down

本文作者:丁辉

通过副本控制实现金丝雀发布

官方文档

通过副本数控制

操作步骤:

  1. 先部署稳定版本(v1,9个副本)
  2. 部署金丝雀版本(v2,1个副本)
  3. Service会自动将约9%的流量(1/10)导向v2
  4. 观察监控,如果v2正常,逐步增加v2副本数,减少v1副本数

开始部署

部署测试示例 Nginx Deployment v1和v2

  1. 部署 Pod-Nginx-v1

    1
    kubectl apply -f https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/nginx-deployment-v1.yaml
  2. 部署 Pod-Nginx-v2

    1
    kubectl apply -f https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/nginx-deployment-v2.yaml
  3. 修改副本数数量

    • v1 配置为 9

      1
      kubectl scale deployment/nginx-deployment-1 --replicas=9
    • v2 配置为 1

      1
      kubectl scale deployment/nginx-deployment-2 --replicas=1
  4. 部署 Service(同时选择v1和v2的Pod)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    kind: Service
    metadata:
    name: nginx-deployment-service
    spec:
    selector:
    app: nginx # 同时选择两个版本的Pod
    ports:
    - port: 80
    targetPort: 80
    EOF
  5. 修改权重将流量导向 v2

    • 逐步增加 v2

      1
      kubectl scale deployment/nginx-deployment-2 --replicas=10
    • 降低 v1

      1
      kubectl scale deployment/nginx-deployment-1 --replicas=0
  6. 中途访问 Nginx 发现正在随着我们扩展和缩小副本数量,逐步迁移流量。

要是这篇文章为您解了惑、带来了帮助,不妨用小小的打赏来支持下我的创作吧,您的鼓励就是我持续分享的最大动力哦,感谢您啦!

其他文章
cover
使用Kubectl-Proxy访问Pod
  • 70/01/01
  • 00:00
  • Kubernetes-使用文档
cover
Helm私有仓库部署
  • 70/01/01
  • 00:00
  • Kubernetes-资源部署
目录导航 置顶
  1. 1. 通过副本控制实现金丝雀发布
    1. 1.1. 通过副本数控制
    2. 1.2. 开始部署
请输入关键词进行搜索