Kubernetes 发布管理流程实操指南(5步标准流程)

下面通过具体操作演示完整的Kubernetes发布管理流程,使用滚动更新策略确保零停机部署。所有操作均基于kubectl命令行工具。


步骤1:准备部署清单

创建基础Deployment和Service资源:

# deployment-v1.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  strategy:
    type: RollingUpdate  # 滚动更新策略
    rollingUpdate:
      maxSurge: 1        # 最大临时副本数
      maxUnavailable: 0  # 最大不可用副本数
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.18  # 初始版本
        ports:
        - containerPort: 80
---
# service.yaml
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer

执行部署:

kubectl apply -f deployment-v1.yaml -f service.yaml


步骤2:验证初始部署

检查资源状态:

kubectl get pods -l app=nginx  # 查看Pod状态
kubectl get deployment nginx-app  # 检查Deployment
kubectl describe svc nginx-svc  # 获取服务访问IP

预期输出应显示:

READY   3/3   STATUS   Running


步骤3:执行滚动更新

更新镜像版本触发发布:

kubectl set image deployment/nginx-app nginx=nginx:1.19  # 更新至新版本

监控更新过程:

kubectl rollout status deployment/nginx-app  # 实时跟踪状态

输出示例:

Waiting for rollout to finish: 1 out of 3 new replicas updated...


步骤4:发布后验证
  1. 功能验证
    curl <SERVICE-IP>  # 测试服务响应
    

  2. 日志检查
    kubectl logs <POD_NAME> -f  # 实时日志监控
    

  3. 指标监控
    kubectl top pods -l app=nginx  # 资源消耗监控
    


步骤5:回滚机制

若发现异常立即回滚:

kubectl rollout undo deployment/nginx-app  # 回滚到上一版本

查看历史记录:

kubectl rollout history deployment/nginx-app

输出示例:

REVISION  CHANGE-CAUSE
1         nginx:1.18
2         nginx:1.19


关键公式说明

在滚动更新策略中,副本更新过程满足: $$ R_{\text{current}} = R_{\text{old}} - U + S $$ 其中:

  • $R_{\text{current}}$ 为当前可用副本数
  • $R_{\text{old}}$ 为旧副本总数
  • $U$ 为maxUnavailable
  • $S$ 为maxSurge

通过此流程,可实现:

  1. 版本控制(镜像标签管理)
  2. 渐进式流量切换
  3. 秒级回滚能力
  4. 发布过程可观测性
  5. 资源利用率优化
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐