Skip to content

ArgoCD トラフィック管理クイズ ​

このクイズでは、ArgoCD および Argo Rollouts を使用した progressive delivery とトラフィック管理についての理解を確認します。

  1. Argo Rollouts とは何ですか?
    • A) ArgoCD 向けのロギングソリューション
    • B) progressive delivery 戦略のための Kubernetes controller
    • C) Git ブランチ管理ツール
    • D) トラフィック監視ダッシュボード
答えを表示

答え: B) progressive delivery 戦略のための Kubernetes controller

解説: Argo Rollouts は、Canary deployment、Blue-Green deployment、および自動分析を伴う progressive delivery などの高度な Deployment 機能を提供する Kubernetes controller です。

  1. 古いバージョンから新しいバージョンへトラフィックを段階的に移行する Deployment 戦略はどれですか?
    • A) Recreate
    • B) Rolling Update
    • C) Canary
    • D) Blue-Green
答えを表示

答え: C) Canary

解説: Canary deployment は、古いバージョンから新しいバージョンへトラフィックを段階的に移行します(例: 10%、25%、50%、100%)。これにより、各ステップでテストと検証を行えます。

  1. Argo Rollouts を使用した Blue-Green deployment では、promotion 中に何が起こりますか?
    • A) blue 環境が削除される
    • B) トラフィックが stable(blue)Service から preview(green)Service へ切り替わる
    • C) 両方のバージョンが永久に同時実行される
    • D) 新しい環境が作成される
答えを表示

答え: B) トラフィックが stable(blue)Service から preview(green)Service へ切り替わる

解説: Blue-Green deployment では、active Service selector を更新することで、promotion により現在の stable バージョンから preview バージョンへトラフィックを切り替えます。古い ReplicaSet は promotion 後にスケールダウンされます。

  1. Argo Rollouts における AnalysisTemplate とは何ですか?
    • A) 新しいアプリケーションを作成するためのテンプレート
    • B) 自動 Canary 分析のためのメトリクスと成功条件の定義
    • C) ロギング設定
    • D) リソースクォータテンプレート
答えを表示

答え: B) 自動 Canary 分析のためのメトリクスと成功条件の定義

解説: AnalysisTemplate は、クエリするメトリクス(Prometheus、Datadog など)と成功/失敗の条件を定義します。Rollout 中に AnalysisRun がこれらのテンプレートを実行し、Deployment を続行すべきかどうかを自動的に判断します。

  1. トラフィック分割のために Argo Rollouts とネイティブ統合している Ingress controller はどれですか?
    • A) Traefik のみ
    • B) NGINX Ingress のみ
    • C) NGINX、ALB、Istio、Traefik を含む複数
    • D) なし。手動設定が必要
答えを表示

答え: C) NGINX、ALB、Istio、Traefik を含む複数

解説: Argo Rollouts は、NGINX Ingress、AWS ALB、Istio、Linkerd、SMI、Traefik を含む複数の Ingress controller および Service mesh とネイティブのトラフィック管理統合を提供します。

  1. Canary 戦略の setWeight ステップは何を行いますか?
    • A) Pod の CPU ウェイトを設定する
    • B) Canary バージョンへルーティングするトラフィックの割合を設定する
    • C) Deployment の重要度を設定する
    • D) rollback のしきい値を設定する
答えを表示

答え: B) Canary バージョンへルーティングするトラフィックの割合を設定する

解説: Canary 戦略の setWeight ステップは、Canary(新しい)バージョンへルーティングするトラフィックの割合を設定します。たとえば、setWeight: 20 はトラフィックの 20% を Canary へルーティングします。

  1. Canary deployment 中に AnalysisRun が失敗すると、何が起こりますか?
    • A) Deployment は関係なく続行される
    • B) アラートは送信されるが、それ以外は何も起こらない
    • C) Rollout が自動的に中止され、rollback される
    • D) cluster がシャットダウンされる
答えを表示

答え: C) Rollout が自動的に中止され、rollback される

解説: AnalysisRun が失敗すると(メトリクスが失敗しきい値を超えると)、Argo Rollouts は自動的に Rollout を中止し、stable バージョンへの rollback を開始します。これにより、不適切な Deployment がすべてのトラフィックに影響するのを防ぎます。

  1. 手動検証のために特定のステップで Rollout を一時停止するにはどうしますか?
    • A) duration を指定しない pause ステップを使用する
    • B) stop ステップを使用する
    • C) duration: forever を指定した wait ステップを使用する
    • D) 不可能
答えを表示

答え: A) duration を指定しない pause ステップを使用する

解説: duration を指定しない pause ステップを追加すると、無期限の一時停止が作成され、続行するには手動での promotion(CLI または UI 経由)が必要になります。これは Deployment プロセスにおける手動検証ゲートに役立ちます。

  1. Kong Ingress Controller を通じて Canary トラフィックを分割するにはどうしますか?
    • A) trafficRouting.kong フィールドを直接使用する
    • B) Gateway API plugin(trafficRouting.plugins)を介して HTTPRoute を操作する
    • C) Kong を Argo Rollouts と統合することはできない
    • D) Istio VirtualService を使用して迂回させる
答えを表示

答え: B) Gateway API plugin(trafficRouting.plugins)を介して HTTPRoute を操作する

解説: Kong にはネイティブの Argo Rollouts 統合はありません。trafficRouting.kong フィールドは存在しません。Kong は、標準の HTTPRoute リソースを操作する argoproj-labs の Gateway API plugin を介してのみサポートされます。Traefik や kgateway など、その他の Gateway API 準拠 controller も同じ plugin を使用します。

  1. Argo Rollouts Gateway API plugin は、各 Canary weight ステップで実際にどのリソースを更新しますか?
    • A) Service の selector ラベル
    • B) Ingress の canary-weight annotation
    • C) HTTPRoute の backendRefs[].weight
    • D) DestinationRule の subset ラベル
答えを表示

答え: C) HTTPRoute の backendRefs[].weight

解説: Gateway API plugin は、各 setWeight ステップで標準 Gateway API HTTPRoute リソースの backendRefs[].weight 値を直接更新します。これは、Kong、Traefik、kgateway など、Gateway API を実装するあらゆる controller に同様に適用される汎用的な仕組みです。

ドキュメントに質問する

Enter で送信、Shift+Enter で改行します。