Auto DevOpsの複数のKubernetesクラスター
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
Auto DevOpsを使用すると、異なる環境を異なるKubernetesクラスターにデプロイできます。
Auto DevOpsで使用されるDeploy Job templateは、3つの環境名を定義します:
review/(review/で始まるすべての環境)stagingproduction
これらの環境は自動デプロイを使用してジョブに関連付けられているため、異なるデプロイドメインが必要です。3つの環境それぞれに対して、個別のKUBE_CONTEXT変数とKUBE_INGRESS_BASE_DOMAIN変数を定義する必要があります。
異なるクラスターへのデプロイ
環境を異なるKubernetesクラスターにデプロイするには、次の手順を実行します:
- OpenTofuとGitLabでKubernetesクラスターを作成。
- プロジェクトにクラスターを関連付けます:
- 各クラスターにNGINX Ingressコントローラーをインストール。次の手順のために、IPアドレスとKubernetesネームスペースを保存します。
- Auto DevOps CI/CDパイプライン変数を設定する
KUBE_CONTEXT変数を環境ごとに設定します。値は、関連するクラスターのエージェントを指している必要があります。KUBE_INGRESS_BASE_DOMAINを設定します。関連するクラスターのIngressを指すように、環境ごとにベースドメインを設定する必要があります。- デプロイのターゲットとするKubernetesネームスペースの値を持つ
KUBE_NAMESPACE変数を追加します。変数のスコープを複数の環境に設定できます。
非推奨の証明書ベースのクラスターの場合:
- プロジェクトに移動し、左側のサイドバーから操作 > Kubernetesクラスターを選択します。
- 各クラスターの環境スコープを設定。
- 各クラスターについて、Ingress IPアドレスに基づいてドメインを追加。
アクティブなKubernetesクラスターをチェックする際に、クラスター環境スコープは考慮されません。マルチクラスター構成をAuto DevOpsで使用するには、Cluster environment scopeを*に設定してフォールバッククラスターを作成する必要があります。既に追加したクラスターをフォールバッククラスターとして設定できます。
設定例
| クラスター名 | Cluster environment scope | KUBE_INGRESS_BASE_DOMAINの値 | KUBE CONTEXTの値 | Variable environment scope | 備考 |
|---|---|---|---|---|---|
| レビュー | review/* | review.example.com | path/to/project:review-agent | review/* | すべてのレビューアプリを実行するレビュークラスター。 |
| ステージング | staging | staging.example.com | path/to/project:staging-agent | staging | オプション。ステージング環境のデプロイを実行するステージングクラスター。最初に有効にする必要があります。 |
| 本番環境 | production | example.com | path/to/project:production-agent | production | 本番環境環境デプロイを実行する本番環境クラスター。段階的なロールアウトを使用できます。 |
設定をテストする
構成が完了したら、マージリクエストを作成してセットアップをテストします。アプリケーションがreview/*環境スコープを持つKubernetesクラスターのレビューアプリとしてデプロイされているかどうかを確認します。同様に、他の環境も確認します。