Skip to content

CI/CD

流水线、GitOps、制品管理。

Updated View as Markdown
For humans

CI/CD

CI/CD 把交付自动化:CI 保证质量,CD 保证发布。面试主线:流水线阶段、GitOps、与 K8s 的结合。

CI 与 CD

环节 内容 目标
CI(持续集成) 提交触发:测试 + 构建 + 扫描 每次提交可验证
CD(持续交付/部署) 自动发布到环境 快速可靠上线

流水线阶段:

代码提交 → 单元测试 → 代码扫描 → 构建镜像 → 镜像扫描
→ 推送制品库 → 部署测试环境 → 集成测试 → 部署生产(灰度)

工具链

环节 工具
CI 平台 GitHub Actions、GitLab CI、Jenkins
制品库 Harbor、Artifactory(镜像/包)
部署 ArgoCD、Flux、Helm
质量 SonarQube(代码)、Trivy(镜像漏洞)

Helm:K8s 应用打包(模板化 yaml,values 参数化)。发布 = helm install/upgrade

GitOps

GitOps: Git 是唯一事实源, 控制器对账

  • GitOps:Git 仓库是部署的唯一事实源,变更走 PR 审查,ArgoCD 自动同步到集群
  • 收益:可审计(谁改了什么都在 Git)、可回滚(revert)、自动修复漂移
  • 与 K8s 控制器模式一致:声明式 + 对账

发布流水线要点

要点 说明
每次提交跑 CI 问题早发现,别攒着
构建一次发布多次 同一镜像从测试到生产(不可变)
环境隔离 测试/预发/生产,配置不同(ConfigMap)
门禁 测试不过、扫描有高危漏洞 → 阻断
快速反馈 CI 10 分钟内完成(开发者才愿意等)

面试追问

  1. CI 和 CD? CI 提交即验证(测试构建扫描),CD 自动发布。流水线是常态
  2. GitOps 是什么? Git 是事实源,ArgoCD 对账同步。PR 即发布审批,可审计可回滚
  3. Helm 干什么? K8s 应用打包:模板化 yaml + values 参数化
  4. 构建一次发布多次? 同一镜像走完环境(不可变):测试验证过的就是生产的
  5. CI 里做什么安全? 依赖/镜像漏洞扫描、密钥扫描(防提交 Secret)。门禁阻断
Navigation

Type to search…

↑↓ navigate↵ selectEsc close