自動DevOpsのための複数のKubernetesクラスタ

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

Auto DevOpsで使用されるデプロイジョブテンプレートでは、3つの環境名が定義されています:

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

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

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

環境を異なるKubernetesクラスタにデプロイするには:

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

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

  1. プロジェクトに移動し、左サイドバーからOperate > Kubernetes clustersを選択します。
  2. 各クラスターの環境スコープを設定します。
  3. 各クラスターについて、Ingress IPアドレスに基づいてドメインを追加します。
note
アクティブなKubernetesクラスタをチェックする際、クラスタ環境スコープは尊重されません。Auto DevOpsでマルチクラスターセットアップを動作させるには、クラスター環境スコープを *に設定したフォールバッククラスターを作成する必要があります。 すでに追加したクラスターのいずれかをフォールバッククラスターとして設定できます。

設定例

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

設定のテスト

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