跟着小新学 K8s(Day4):发布管理实操步骤拆解,小白也能上手
·
跟着小新学 K8s(Day4):发布管理实操步骤拆解
Kubernetes 的发布管理是应用迭代的核心能力,下面拆解三种主流发布策略的实操步骤,小白也能轻松上手:
一、滚动更新(Rolling Update)
适用场景:无停机的渐进式更新
实操步骤:
-
创建基础 Deployment
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-app spec: replicas: 3 strategy: type: RollingUpdate # 滚动更新策略 rollingUpdate: maxSurge: 1 # 允许超出副本数上限 maxUnavailable: 0 # 保证零停机 template: spec: containers: - name: nginx image: nginx:1.18 # 初始版本 -
触发更新
kubectl set image deployment/nginx-app nginx=nginx:1.19 -
监控过程
kubectl rollout status deployment/nginx-app # 实时查看更新进度 kubectl get pods -w # 观察Pod替换状态
二、蓝绿发布(Blue-Green)
适用场景:零风险版本切换
实操步骤:
-
部署蓝环境(旧版)
apiVersion: apps/v1 kind: Deployment metadata: name: blue-app labels: version: "blue" spec: replicas: 3 template: ... # 旧版配置 --- apiVersion: v1 kind: Service metadata: name: my-service spec: selector: version: "blue" # 流量指向蓝环境 ports: - protocol: TCP port: 80 -
部署绿环境(新版)
kubectl apply -f green-deployment.yaml # 创建独立绿环境Deployment -
流量切换
修改 Service 的标签选择器:spec: selector: version: "green" # 切换流量到绿环境
三、金丝雀发布(Canary)
适用场景:灰度验证新版本
实操步骤:
-
部署主版本
apiVersion: apps/v1 kind: Deployment metadata: name: main-app labels: app: my-app spec: replicas: 9 # 90%流量 -
部署金丝雀版本
apiVersion: apps/v1 kind: Deployment metadata: name: canary-app labels: app: my-app # 相同app标签! spec: replicas: 1 # 10%流量 -
自动流量分配
Service 通过标签选择器实现流量分流:apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: my-app # 同时选择两个Deployment ports: ...流量比例计算公式:
$$ \text{金丝雀流量占比} = \frac{\text{canary副本数}}{\text{main副本数} + \text{canary副本数}} \times 100% $$
关键验证命令
# 查看发布状态
kubectl get deployments -o wide
# 回滚操作(以滚动更新为例)
kubectl rollout undo deployment/nginx-app
# 查看历史版本
kubectl rollout history deployment/nginx-app
小白提示:
- 滚动更新适合常规迭代
- 蓝绿发布适合重大版本升级
- 金丝雀发布适合高风险变更
先从滚动更新开始练习,逐步掌握复杂策略!
更多推荐

所有评论(0)