Jenkins/GitLab CI 流水线搭建、制品管理、蓝绿/金丝雀发布、质量门禁与安全扫描
某团队 15 个微服务,每次发布需要人工执行:拉代码 → 编译 → 单元测试 → 打包 Docker 镜像 → 推送 Harbor → 更新 K8s Deployment。耗时 2 小时且步骤遗漏频发。
搭建 Jenkins Master + 3 Agent 架构,编写声明式 Jenkinsfile 定义 CI/CD 流水线。GitLab Webhook 触发 → 自动构建 → 质量门禁 → 制品推送 → 滚动更新 K8s。全流程 12 分钟。
某互联网公司 K8s 集群已有 50+ 应用,使用 kubectl 直改 YAML 发布,无法追溯变更历史,回滚困难。需引入 GitOps 理念。
GitLab CI 负责 CI(构建镜像、跑测试),ArgoCD 负责 CD(监听 Git 仓库中 K8s YAML 变化并自动同步到集群)。所有变更通过 PR 审批,Git 完整审计记录。
某支付系统对可用性要求极高,传统滚动更新仍需等待新旧版本并存期间的不一致风险。需实现蓝绿部署零停机,并支持按流量百分比金丝雀发布。
基于 K8s Service Selector 切换实现蓝绿部署:部署两套 Deployment(blue/green),Service 指向当前版本,切换时修改 Selector。金丝雀使用 Istio VirtualService 按权重分流。