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

クラスター管理プロジェクト(非推奨)

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

クラスター管理プロジェクトは、GitLab 14.5で非推奨になりました。クラスタアプリケーションを管理するには、Kubernetes向けGitLabエージェントCluster Management Project Templateを使用します。

GitLab Self-Managedでは、デフォルトでこの機能は使用できません。管理者がcertificate_based_clustersという名前の機能フラグを有効にすると、この機能を使用できるようになります。

プロジェクトは、クラスタのクラスター管理プロジェクトとして指定できます。クラスター管理プロジェクトは、Kubernetes cluster-admin権限でデプロイメントジョブを実行するために使用できます。

これは、以下の場合に役立ちます:

  • クラスタ全体のアプリケーションをクラスタにインストールするためのパイプラインの作成。詳細については、management project templateを参照してください。
  • cluster-admin権限を必要とするジョブ。

権限

クラスター管理プロジェクトのみがcluster-admin権限を受け取ります。他のすべてのプロジェクトは、ネームスペーススコープのeditレベルの権限を引き続き受け取ります。

クラスター管理プロジェクトは、以下に制限されています:

  • プロジェクトレベルのクラスタの場合、クラスター管理プロジェクトは、クラスタのプロジェクトと同じネームスペース(または子孫)にある必要があります。
  • グループレベルのクラスタの場合、クラスター管理プロジェクトは、クラスタのグループと同じグループ(または子孫)にある必要があります。
  • インスタンスレベルのクラスタの場合、そのような制限はありません。

クラスター管理プロジェクトを作成および設定する方法

クラスター管理プロジェクトを使用してクラスタを管理するには、次の手順に従います:

  1. クラスタのクラスター管理プロジェクトとして機能する新しいプロジェクトを作成します。
  2. クラスターをクラスター管理プロジェクトに関連付けます
  3. クラスタのパイプラインを設定します
  4. 環境スコープを設定します。

クラスター管理プロジェクトをクラスタに関連付ける

クラスター管理プロジェクトをクラスタに関連付けるには、次の手順に従います:

  1. 適切な設定ページに移動します。以下の場合:
  2. Advanced settings(高度な設定)を展開します。
  3. クラスター管理プロジェクトクラスター管理プロジェクトドロップダウンリストから、前の手順で作成したクラスター管理プロジェクトを選択します。

パイプラインの設定

プロジェクトをクラスタのクラスター管理プロジェクトとして指定した後、そのプロジェクトに.gitlab-ci.ymlファイルを追加します。例:

configure cluster:
  stage: deploy
  script: kubectl get namespaces
  environment:
    name: production

環境スコープの設定

環境スコープは、複数のクラスタを同じクラスター管理プロジェクトに関連付ける場合に使用できます。

各スコープは、クラスター管理プロジェクトの単一のクラスタでのみ使用できます。

たとえば、次のKubernetesクラスタがクラスター管理プロジェクトに関連付けられています:

クラスター環境スコープ
開発*
ステージングstaging
本番環境production

.gitlab-ci.ymlファイルに設定された環境は、Development、ステージング、および本番環境クラスタにデプロイされます。

stages:
  - deploy

configure development cluster:
  stage: deploy
  script: kubectl get namespaces
  environment:
    name: development

configure staging cluster:
  stage: deploy
  script: kubectl get namespaces
  environment:
    name: staging

configure production cluster:
  stage: deploy
  script: kubectl get namespaces
  environment:
    name: production