时间:2023年6月 - 2024年8月
项目背景
公司业务从单体应用向微服务转型,原有 10+ 台物理机直接跑 Java/Node.js 进程,环境配置靠手改、发布靠 scp、回滚靠猜。需要建设一套支持 30+ 微服务的高可用 K8s 集群,并实现 CI/CD 自动化。
我的角色
运维工程师 → 运维架构师(主导基础设施设计)
技术栈
Kubernetes (kubeadm 部署) | containerd | Calico | Nginx Ingress | MinIO (镜像仓库) | Harbor | ArgoCD | GitLab CI | Helm | Prometheus Operator | Elasticsearch + Fluentd + Kibana | Rancher
项目内容与量化成果
1. 高可用集群规划与部署
- 设计 5 节点集群架构:3 个 Master(etcd 高可用)+ 2 个 Worker,100% 组件 HA
- 使用 kubeadm 生产部署,配置 Calico 网络策略实现多租户隔离(dev/staging/prod 命名空间)
- 部署 Harbor 企业镜像仓库(HTTP 私有仓库),解决内网镜像拉取慢的问题
- 设计 GPU 节点调度策略(NVIDIA GPU Operator),支撑 AI 团队模型训练
2. 建立 GitOps 工作流
- 搭建 GitLab CI + ArgoCD 流水线,实现 Git Push → 自动构建 → 自动部署到对应环境
- 编写 30+ 个 Helm Chart 模板,统一微服务部署规范(资源限制、健康检查、灰度策略)
- 配置 ArgoCD Image Updater,镜像更新后自动同步
3. 可观测性体系建设
- 部署 Prometheus Operator + kube-prometheus-stack,自动发现 K8s 组件指标
- 部署 EFK 日志栈,所有 Pod 日志集中采集,支持关键字告警
- 配置 Grafana Loki + Tempo,实现日志→链路追踪联动排障
4. 迁移与平稳过渡
- 将 10+ 个旧系统逐步容器化迁移:每个服务制定 2 周迁移计划,并行运行 1 周验证再下线旧系统
- 迁移过程零故障,业务方无感知
量化成果
- 部署时间从人工 2 小时/次缩短到 15 分钟/次(GitOps 自动化)
- 回滚时间从 1 小时缩短到 3 分钟(ArgoCD 一键回滚)
- 环境一致性:"
- 集群可用性:99.95%(全年计划内停机仅 2 次升级窗口)
- 支撑 30+ 微服务、50+ 开发人员平稳运行