1.7 KiB
1.7 KiB
本文作者:丁辉
通过副本控制实现金丝雀发布
通过副本数控制
操作步骤:
- 先部署稳定版本(v1,9个副本)
- 部署金丝雀版本(v2,1个副本)
- Service会自动将约9%的流量(1/10)导向v2
- 观察监控,如果v2正常,逐步增加v2副本数,减少v1副本数
开始部署
部署测试示例 Nginx Deployment v1和v2
-
部署 Pod-Nginx-v1
kubectl apply -f https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/nginx-deployment-v1.yaml -
部署 Pod-Nginx-v2
kubectl apply -f https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/nginx-deployment-v2.yaml -
修改副本数数量
-
v1 配置为 9
kubectl scale deployment/nginx-deployment-1 --replicas=9 -
v2 配置为 1
kubectl scale deployment/nginx-deployment-2 --replicas=1
-
-
部署 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 -
修改权重将流量导向 v2
-
逐步增加 v2
kubectl scale deployment/nginx-deployment-2 --replicas=10 -
降低 v1
kubectl scale deployment/nginx-deployment-1 --replicas=0
-
-
中途访问 Nginx 发现正在随着我们扩展和缩小副本数量,逐步迁移流量。