关于 progressive-delivery
这是一份介绍使用 Argo Rollouts 和 Kargo 实现 Kubernetes 渐进式交付的技能指南,说明流量策略、环境间版本晋级,以及它们与 ArgoCD 的配合方式。
主要功能
- 01金丝雀与蓝绿发布指南
- 02基于指标的自动分析
- 03跨环境阶段晋级
- 04ArgoCD 集成说明
适用场景
- 01规划工作负载的流量切换发布
- 02将版本从 dev 晋级到 prod
- 03配置阶段间的验证门禁
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ julianobarbosa/ claude-code-skills --skill progressive-delivery安装后在 Claude Code 中输入/progressive-delivery确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
References/argo-rollouts.mdkargo.mdReferences/argo-rollouts/analysis-metrics.mdcli-commands.mddeployment-strategies.mdexamples.mdsummary.mdReferences/kargo/expressions.mdpatterns.mdpromotion-steps.mdsecurity.md详细介绍
渐进式交付
两种互补的工具,可在 Kubernetes 环境中安全地推进版本:
- Argo Rollouts — 用支持金丝雀、蓝绿部署和指标门控自动分析的
RolloutCRD 替代Deployment。在集群/服务网格层处理流量整形。 - Kargo — 为 GitOps 扩展晋级逻辑。跟踪
Freight(带版本的制品包),并通过Warehouses(来源)和验证步骤,使其依次晋级到各个Stages(开发 → 预发布 → 生产)。
ArgoCD 继续执行它原本的职责(将期望状态同步到集群)。Rollouts 决定单次部署期间的流量分流。Kargo 决定何时将新版本推进到下一个阶段。
范围路由
| 如果你需要…… | 阅读 |
|---|---|
| 对单个工作负载进行金丝雀/蓝绿/指标门控部署 | References/argo-rollouts.md + References/argo-rollouts/ |
| 通过人工或自动门禁,将版本从开发 → 预发布 → 生产逐级晋级 | References/kargo.md + References/kargo/ |
| 两者兼用(将 Rollouts 作为 Kargo 管理的晋级流程中的部署策略) | 两者都读;Kargo 会调用 ArgoCD 来部署 Rollout |
心智模型
Kargo: Freight v1.2.3 -> [dev stage] -> verify -> [stg stage] -> verify -> [prod stage]
|
v
ArgoCD: syncs Rollout manifest
|
v
Rollouts: canary @ 10% -> analysis -> 50% -> 100%
何时不应使用
- 不需要流量整形或分析门禁的简单
Deployment滚动更新——原生 Kubernetes Deployment 就足够了。 - 通过编辑目标修订版本的 PR 手动晋级——这是核心
argocd技能的范畴,不属于此处。 - 在应用内部使用功能标志和运行时百分比发布——这是应用层面的职责(LaunchDarkly、Unleash 等),而非部署层面的职责。
注意事项
- Rollouts 会替代 Deployment,而不是附加于它。 迁移现有应用意味着要更改资源类型。如果不使用 kubectl-argo-rollouts 转换,请为一个修订版本的停机做好计划。
- AnalysisTemplate 指标查询受 Rollouts 控制器权限的限制。 如果你的 Prometheus 位于其他命名空间,控制器需要 RBAC 权限或服务账号令牌。
- Kargo Freight 是不可变的。 创建后不能编辑——应创建新的 Freight。试图“修补”Stage 当前的 Freight 是一种反模式。
- Kargo 与 ArgoCD 集成需要 Kargo 控制器有权更新 ArgoCD
ApplicationCR。 默认安装不会授予此权限——请查看argocd.permissions的 Helm 配置值。 - 验证步骤在阶段之间运行,而非阶段内部。 验证失败不会回滚上一阶段,只会阻止继续晋级。如果需要回滚,那属于单独的 Rollouts 级分析。
评论
支持 Markdown