Skip to content
返回部署

使用 Codefresh 部署

Kubernetes 原生 CI/CD 平台,针对容器和 Helm 部署优化。

CI/CD进阶

为什么

Codefresh 对 Helm 和 Argo CD 有一等支持,内置容器注册表和缓存。DORA 2024 DevOps 状态报告显示精英团队部署频率比低绩效团队高 973 倍。

带自动化测试的 CI/CD 管道将变更失败率降至 5-15%,而手动部署为 40-60%。

何时使用

Kubernetes 重度团队,希望集成注册表、Helm 和 GitOps。贡献者少于 5 人的仓库避免复杂管道编排 — pre-commit 钩子 + GitHub Actions 足够。

除非需要 GPU 或 VPN 访问,否则跳过自托管 runner。

如何做

# codefresh.YML version: '1.0' stages: - build - deploy steps: BuildImage: type: build stage: build title: Build Docker image image_name: myorg/app tag: ${{CF_BRANCH_TAG_NORMALIZED}} DeployHelm: title: Deploy via Helm stage: deploy type: helm arguments: chart_name: myapp chart_repo: my-repo release_name: myapp kube_context: prod-cluster cmd: upgrade --install --set image.tag=${{CF_BRANCH_TAG_NORMALIZED}} 4. 验证部署 — curl -I https://your-app.example.com 5. 监控日志 — 前 5 分钟检查错误 6. 需要时回滚 — 回退到上一版本

示例

# Codefresh GitOps with ArGo CD steps: SyncArgoCD: title: Sync Argo CD app type: argocd-sync arguments: app_name: myapp server: argocd.example.com token: ${{ARGOCD_TOKEN}}

常见问题

  • ⚠Helm chart 未找到 — 验证 chart repo 已添加
  • ⚠Kube context 缺失 — 在 Codefresh UI 添加集群
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓用并行步骤 — 加速独立测试套件
  • ✓用 Codefresh runtime 共享步骤 — DRY 流水线逻辑
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答