mcpField
A
ArgoRollouts

ArgoRollouts

github.com/julianobarbosa云与 DevOps1452 次安装2 天前更新
代码仓库

关于 ArgoRollouts

ArgoRollouts 是关于 Kubernetes 渐进式交付控制器的技能指南,适合 Kubernetes 运维人员使用。它涵盖蓝绿与金丝雀部署、流量路由及基于指标的分析配置和故障排查。

主要功能

  1. 01蓝绿与金丝雀策略
  2. 02逐步切换流量
  3. 03基于指标的晋级与回滚
  4. 04AnalysisTemplate 和 AnalysisRun 指南
  5. 05流量管理提供方集成
  6. 06kubectl-argo-rollouts 命令参考

适用场景

  1. 01配置带分析门控的金丝雀发布
  2. 02在蓝绿晋级前验证预览版本
  3. 03排查暂停的发布或失败的分析

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/julianobarbosa/claude-code-skills --skill argorollouts

安装后在 Claude Code 中输入/argorollouts确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
analysis-metrics.md
cli-commands.md
deployment-strategies.md
examples.md
summary.md

详细介绍

Argo Rollouts 技能

Argo Rollouts 综合指南——这是一款 Kubernetes 控制器,可为 Kubernetes 提供高级部署能力,包括蓝绿部署、金丝雀发布和实验。

快速参考

资源描述
Rollout替代 Deployment,并添加渐进式交付策略
AnalysisTemplate定义用于自动分析的指标查询
AnalysisRun从模板实例化的分析
Experiment运行 ReplicaSet 以进行 A/B 测试
ClusterAnalysisTemplate集群范围的 AnalysisTemplate

核心概念

Rollout CRD

Rollout 资源替代标准 Kubernetes Deployment,并提供:

  • 蓝绿策略:在不同版本之间即时切换流量
  • 金丝雀策略:通过分析关卡逐步切换流量
  • 流量管理:与服务网格和 Ingress 控制器集成
  • 自动分析:基于指标做出升级或回滚决策
部署策略

蓝绿部署:

strategy:
  blueGreen:
    activeService: my-app-active
    previewService: my-app-preview
    autoPromotionEnabled: false

金丝雀发布:

strategy:
  canary:
    steps:
    - setWeight: 20
    - pause: {duration: 5m}
    - setWeight: 50
    - analysis:
        templates:
        - templateName: success-rate

流量管理集成

提供方配置键
IstiotrafficRouting.istio
NGINX IngresstrafficRouting.nginx
AWS ALBtrafficRouting.alb
LinkerdtrafficRouting.linkerd
SMItrafficRouting.smi
TraefiktrafficRouting.traefik
AmbassadortrafficRouting.ambassador

CLI 命令(kubectl-argo-rollouts)

# Installation
kubectl argo rollouts version

# Rollout Management
kubectl argo rollouts get rollout <name>
kubectl argo rollouts status <name>
kubectl argo rollouts promote <name>
kubectl argo rollouts abort <name>
kubectl argo rollouts retry <name>
kubectl argo rollouts undo <name>
kubectl argo rollouts pause <name>
kubectl argo rollouts restart <name>

# Dashboard
kubectl argo rollouts dashboard

# Validation
kubectl argo rollouts lint <file>

分析提供方

提供方用例
Prometheus使用 PromQL 查询指标
DatadogDatadog 指标 API
New RelicNRQL 查询
WavefrontWavefront 查询
Kayenta金丝雀分析平台
CloudWatchAWS CloudWatch 指标
WebHTTP 端点检查
Job基于 Kubernetes Job 的分析

参考文档

常见模式

使用自动分析的金丝雀发布
steps:
- setWeight: 10
- pause: {duration: 1m}
- analysis:
    templates:
    - templateName: success-rate
    args:
    - name: service-name
      value: my-service
- setWeight: 50
- pause: {duration: 2m}
使用升级前分析的蓝绿部署
strategy:
  blueGreen:
    activeService: active-svc
    previewService: preview-svc
    prePromotionAnalysis:
      templates:
      - templateName: smoke-tests
    autoPromotionEnabled: false

故障排除

问题解决方案
Rollout 卡在 Paused 状态运行 kubectl argo rollouts promote <name>
分析失败检查 AnalysisRun 状态和指标查询
流量未切换验证流量管理提供方配置
Pod 未扩缩容检查 HPA 和资源限制

最佳实践

  1. 生产环境的金丝雀发布始终使用分析关卡
  2. 在提高权重之间设置合适的暂停时长
  3. 在 AnalysisTemplate 中配置回滚阈值
  4. 使用预览服务进行蓝绿部署验证
  5. 在部署期间监控 AnalysisRun
  6. 为 AnalysisTemplate 做版本管理,并与应用代码保持同步

评论

支持 Markdown