Files
Kubernetes/使用文档/通过副本控制实现金丝雀发布.md
offends 89a07bc062
All checks were successful
continuous-integration/drone Build is passing
first commit
2025-12-20 21:10:05 +08:00

1.7 KiB
Raw Blame History

本文作者:丁辉

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

官方文档

通过副本数控制

操作步骤:

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

开始部署

部署测试示例 Nginx Deployment v1和v2

  1. 部署 Pod-Nginx-v1

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

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

    • v1 配置为 9

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

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

    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

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

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