K8s 自动化部署流水线怎么配
服务上了 Kubernetes,想让 CI 打完镜像后自动更新 Deployment 滚动发布,不会写 kubectl set image…
有人这样说「K8s 部署老是手动更新镜像,想让 CI 自动滚起来,但不会写 kubectl 命令」
能替你选的都选好了。不想动,直接点下面「交给 AI 办」,点一下就开始做;想改,就点一下要的那个。
已替你选好想改就点一下
只有你知道的不填就先空着,成品里留【待填】
还想怎么改可以不选
高级选项一般不用动 · 这件事通常 1 分钟左右做好
示例成品全文按上面这组示例选项真跑出来的
【流水线目标】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
【关键说明】
- kubeconfig 用 base64 存进 CI 密钥变量,运行时临时解出,不落盘长期保存。
- set image 触发滚动更新,新旧 Pod 逐步替换,过程中服务不中断。
- rollout status 超时即视为发布失败,自动执行 undo 回滚到上一个可用版本。
- 该脚本可放进任意 CI 平台的部署阶段,配合探针能实现更平滑的灰度发布。整套流程让容器化服务在每次提交后自动滚动上线,发布出问题也能秒级回退保障可用。