小新 K8sDay4 实操:5 步完成一个标准的 K8s 发布管理流程
下面通过具体操作演示完整的Kubernetes发布管理流程,使用滚动更新策略确保零停机部署。
·
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:发布后验证
- 功能验证:
curl <SERVICE-IP> # 测试服务响应 - 日志检查:
kubectl logs <POD_NAME> -f # 实时日志监控 - 指标监控:
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值
通过此流程,可实现:
- 版本控制(镜像标签管理)
- 渐进式流量切换
- 秒级回滚能力
- 发布过程可观测性
- 资源利用率优化
更多推荐


所有评论(0)