This commit is contained in:
78
使用文档/通过副本控制实现金丝雀发布.md
Normal file
78
使用文档/通过副本控制实现金丝雀发布.md
Normal file
@@ -0,0 +1,78 @@
|
||||
> 本文作者:丁辉
|
||||
|
||||
# 通过副本控制实现金丝雀发布
|
||||
|
||||
[官方文档](https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/#canary-deployment)
|
||||
|
||||
## 通过副本数控制
|
||||
|
||||
**操作步骤:**
|
||||
|
||||
1. 先部署稳定版本(v1,9个副本)
|
||||
2. 部署金丝雀版本(v2,1个副本)
|
||||
3. Service会自动将约9%的流量(1/10)导向v2
|
||||
4. 观察监控,如果v2正常,逐步增加v2副本数,减少v1副本数
|
||||
|
||||
## 开始部署
|
||||
|
||||
部署测试示例 Nginx Deployment v1和v2
|
||||
|
||||
1. 部署 Pod-Nginx-v1
|
||||
|
||||
```bash
|
||||
kubectl apply -f https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/nginx-deployment-v1.yaml
|
||||
```
|
||||
|
||||
2. 部署 Pod-Nginx-v2
|
||||
|
||||
```bash
|
||||
kubectl apply -f https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/nginx-deployment-v2.yaml
|
||||
```
|
||||
|
||||
3. 修改副本数数量
|
||||
|
||||
- v1 配置为 9
|
||||
|
||||
```bash
|
||||
kubectl scale deployment/nginx-deployment-1 --replicas=9
|
||||
```
|
||||
|
||||
- v2 配置为 1
|
||||
|
||||
```bash
|
||||
kubectl scale deployment/nginx-deployment-2 --replicas=1
|
||||
```
|
||||
|
||||
4. 部署 Service(同时选择v1和v2的Pod)
|
||||
|
||||
```yaml
|
||||
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
|
||||
|
||||
```bash
|
||||
kubectl scale deployment/nginx-deployment-2 --replicas=10
|
||||
```
|
||||
|
||||
- 降低 v1
|
||||
|
||||
```bash
|
||||
kubectl scale deployment/nginx-deployment-1 --replicas=0
|
||||
```
|
||||
|
||||
6. 中途访问 Nginx 发现正在随着我们扩展和缩小副本数量,逐步迁移流量。
|
||||
|
||||
Reference in New Issue
Block a user