正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

Auto DevOpsの複数のKubernetesクラスター

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

Auto DevOpsを使用すると、異なる環境を異なるKubernetesクラスターにデプロイできます。

Auto DevOpsで使用されるDeploy Job templateは、3つの環境名を定義します:

  • review/review/で始まるすべての環境)
  • staging
  • production

これらの環境は自動デプロイを使用してジョブに関連付けられているため、異なるデプロイドメインが必要です。3つの環境それぞれに対して、個別のKUBE_CONTEXT変数とKUBE_INGRESS_BASE_DOMAIN変数を定義する必要があります。

異なるクラスターへのデプロイ

環境を異なるKubernetesクラスターにデプロイするには、次の手順を実行します:

  1. OpenTofuとGitLabでKubernetesクラスターを作成
  2. プロジェクトにクラスターを関連付けます:
    1. 各クラスターにKubernetes向けGitLabエージェントをインストール
    2. 各エージェントがプロジェクトにアクセスするように設定
  3. 各クラスターにNGINX Ingressコントローラーをインストール。次の手順のために、IPアドレスとKubernetesネームスペースを保存します。
  4. Auto DevOps CI/CDパイプライン変数を設定する
    • KUBE_CONTEXT変数を環境ごとに設定します。値は、関連するクラスターのエージェントを指している必要があります。
    • KUBE_INGRESS_BASE_DOMAINを設定します。関連するクラスターのIngressを指すように、環境ごとにベースドメインを設定する必要があります。
    • デプロイのターゲットとするKubernetesネームスペースの値を持つKUBE_NAMESPACE変数を追加します。変数のスコープを複数の環境に設定できます。

非推奨の証明書ベースのクラスターの場合:

  1. プロジェクトに移動し、左側のサイドバーから操作 > Kubernetesクラスターを選択します。
  2. 各クラスターの環境スコープを設定
  3. 各クラスターについて、Ingress IPアドレスに基づいてドメインを追加

アクティブなKubernetesクラスターをチェックする際に、クラスター環境スコープは考慮されません。マルチクラスター構成をAuto DevOpsで使用するには、Cluster environment scope*に設定してフォールバッククラスターを作成する必要があります。既に追加したクラスターをフォールバッククラスターとして設定できます。

設定例

クラスター名Cluster environment scopeKUBE_INGRESS_BASE_DOMAINの値KUBE CONTEXTの値Variable environment scope備考
レビューreview/*review.example.compath/to/project:review-agentreview/*すべてのレビューアプリを実行するレビュークラスター。
ステージングstagingstaging.example.compath/to/project:staging-agentstagingオプション。ステージング環境のデプロイを実行するステージングクラスター。最初に有効にする必要があります。
本番環境productionexample.compath/to/project:production-agentproduction本番環境環境デプロイを実行する本番環境クラスター。段階的なロールアウトを使用できます。

設定をテストする

構成が完了したら、マージリクエストを作成してセットアップをテストします。アプリケーションがreview/*環境スコープを持つKubernetesクラスターのレビューアプリとしてデプロイされているかどうかを確認します。同様に、他の環境も確認します。