DevOps 与自动化流水线
本章节聚焦 CI/CD、GitOps 与运维脚本自动化,帮助团队将变更可视化、可审计并快速回滚。
CI/CD 模板
- Build 阶段:Docker Buildx、Kaniko 或 BuildKit 以缓存优化。
- Test 阶段:并行化 e2e 与集成测试,利用
kubectl-neat收集部署结果。 - Deploy 阶段:ArgoCD、Flux 或 Tekton 触发的渐进式发布。
GitOps 工作流
- Feature 合并后触发自动化部署。
- ArgoCD 监控 Git 仓库并同步状态。
- 通过
ApplicationSet管理多集群部署。
Shell/Python 工具片段
也可以分别查看:
#!/usr/bin/env bash
set -euo pipefail
# 用于批量刷新集群镜像拉取密钥
declare -a namespaces=("prod" "staging")
for ns in "${namespaces[@]}"; do
kubectl -n "$ns" create secret docker-registry regcred \
--docker-server=registry.example.com \
--docker-username="$REGISTRY_USER" \
--docker-password="$REGISTRY_PASS" \
--dry-run=client -o yaml | kubectl apply -f -
done
# 连接数据库执行巡检 SQL
import mysql.connector
conn = mysql.connector.connect(host="db", user="ops", password="***", database="app")
cur = conn.cursor()
cur.execute("SHOW SLAVE STATUS")
print(cur.fetchone())
变更窗口策略
- Freeze:高风险节假日触发自动冻结,所有部署通过审批。
- Progressive Delivery:利用 Argo Rollouts/Flagger 进行流量切分,监控指标决定推进或回滚。
- 回滚:
kubectl rollout undo+ 数据库备份点恢复。
推荐工具
- Terraform、Crossplane 管理基础设施。
- Ansible、SaltStack 做配置统一。
- Argo Workflows 处理批处理/数据任务。