ArgoRollouts について
ArgoRolloutsは、Kubernetesのプログレッシブデリバリーコントローラーに関するスキルガイドです。Kubernetes運用担当者向けに、ブルーグリーンやカナリアデプロイ、トラフィックルーティング、メトリクス分析の設定とトラブルシューティングを扱います。
主な機能
- 01ブルーグリーンとカナリア戦略
- 02段階的なトラフィック移行
- 03メトリクスに基づく昇格とロールバック
- 04AnalysisTemplateとAnalysisRunの解説
- 05トラフィック管理プロバイダーとの連携
- 06kubectl-argo-rolloutsコマンドのリファレンス
活用シーン
- 01分析ゲート付きカナリアリリースの設定
- 02ブルーグリーン昇格前のプレビュー検証
- 03一時停止したリリースや分析失敗の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ julianobarbosa/ claude-code-skills --skill argorolloutsインストール後、Claude Code で/argorolloutsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/analysis-metrics.mdcli-commands.mddeployment-strategies.mdexamples.mdsummary.md詳細
Argo Rollouts スキル
Argo Rollouts の包括的なガイドです。Kubernetes 向けのコントローラーで、ブルーグリーン、カナリア、実験などの高度なデプロイ機能を提供します。
クイックリファレンス
| リソース | 説明 |
|---|---|
| Rollout | Deployment を置き換え、段階的デリバリー戦略を追加します |
| AnalysisTemplate | 自動分析用のメトリクスクエリを定義します |
| AnalysisRun | テンプレートから作成された分析インスタンスです |
| Experiment | A/B テスト用の ReplicaSet を実行します |
| ClusterAnalysisTemplate | クラスタースコープの AnalysisTemplate です |
コアコンセプト
Rollout CRD
Rollout リソースは標準の Kubernetes Deployment を置き換え、次の機能を提供します。
- ブルーグリーン戦略:バージョン間のトラフィックを即時に切り替えます
- カナリア戦略:分析ゲートを設けて、トラフィックを段階的に移行します
- トラフィック管理:サービスメッシュおよびイングレスコントローラーと連携します
- 自動分析:メトリクスに基づいて昇格またはロールバックを判断します
デプロイ戦略
ブルーグリーン:
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
トラフィック管理の連携
| プロバイダー | 設定キー |
|---|---|
| Istio | trafficRouting.istio |
| NGINX Ingress | trafficRouting.nginx |
| AWS ALB | trafficRouting.alb |
| Linkerd | trafficRouting.linkerd |
| SMI | trafficRouting.smi |
| Traefik | trafficRouting.traefik |
| Ambassador | trafficRouting.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 によるメトリクスクエリ |
| Datadog | Datadog メトリクス API |
| New Relic | NRQL クエリ |
| Wavefront | Wavefront クエリ |
| Kayenta | カナリア分析プラットフォーム |
| CloudWatch | AWS CloudWatch メトリクス |
| Web | HTTP エンドポイントのチェック |
| Job | Kubernetes Job ベースの分析 |
リファレンスドキュメント
- 概要 - 概要とアーキテクチャ
- デプロイ戦略 - ブルーグリーンとカナリアの詳細
- CLI コマンド - kubectl プラグインのリファレンス
- 分析とメトリクス - AnalysisTemplate の設定
- 例 - 完全な YAML の例
よくあるパターン
自動分析を使用するカナリア
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 とリソース制限を確認します |
ベストプラクティス
- 本番環境のカナリアでは、必ず分析ゲートを使用します
- 重みを増やす間に、適切な一時停止時間を設定します
- AnalysisTemplate でロールバックのしきい値を設定します
- ブルーグリーンの検証には、プレビューサービスを使用します
- デプロイ中は、AnalysisRun を監視します
- アプリケーションコードとともに、AnalysisTemplate をバージョン管理します
コメント
Markdown 対応