示例成品 · 平台演示,按左边这组点选真跑出来的
【流水线目标】CI 构建并推送镜像后,自动用新镜像 tag 更新 Kubernetes 里的 Deployment,触发滚动发布,并等待发布完成确认成功。
【部署阶段脚本】
# 前置:已推送镜像 registry.example.com/team/app:$TAG
export KUBECONFIG=$(mktemp)
echo "$KUBE_CONFIG_B64" | base64 -d > $KUBECONFIG
kubectl -n prod set image deployment/app \
app=registry.example.com/team/app:$TAG --record
# 等待滚动发布完成,失败则自动回滚上一版本
kubectl -n prod rollout status deployment/app --timeout=120s \
|| kubectl -n prod rollout undo deployment/app
【关键说明】
1. kubeconfig 用 base64 存进 CI 密钥变量,运行时临时解出,不落盘长期保存。
2. set image 触发滚动更新,新旧 Pod 逐步替换,过程中服务不中断。
3. rollout status 超时即视为发布失败,自动执行 undo 回滚到上一个可用版本。
4. 该脚本可放进任意 CI 平台的部署阶段,配合探针能实现更平滑的灰度发布。整套流程让容器化服务在每次提交后自动滚动上线,发布出问题也能秒级回退保障可用。
点左边「开工 · 直接出成品」,出一份你自己的版本(文字免费)