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

caution
クラスター管理プロジェクトはGitLab 14.5で廃止されました。クラスタアプリケーションを管理するには、クラスタ管理プロジェクトテンプレートでGitLabエージェントを使用してください。

フラグ: セルフマネジメントのGitLabでは、デフォルトではこの機能は利用できません。利用可能にするには、管理者がcertificate_based_clustersという機能フラグを有効にします。

プロジェクトをクラスターの管理プロジェクトとして指定できます。管理プロジェクトを使用して、Kubernetescluster-admin 権限でデプロイジョブを実行できます。

これは次のような場合に便利です:

  • クラスタ全体のアプリケーションをクラスタにインストールするパイプラインの作成。詳細は管理プロジェクトテンプレートを参照してください。
  • cluster-admin 権限を必要とするジョブ。

権限

管理プロジェクトだけがcluster-admin 権限を受け取ります。他のすべてのプロジェクトは、引き続き名前空間スコープedit レベルの特権を受け取ります。

管理プロジェクトは、以下のように制限されます:

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

クラスター管理プロジェクトの作成と設定方法

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

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

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

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

  1. 適切な設定ページに移動します。たとえば
  2. 詳細設定を展開します。
  3. クラスター管理プロジェクト]ドロップダウンリストから、前の手順で作成したクラスター管理プロジェクトを選択します。

パイプラインの設定

プロジェクトをクラスターの管理プロジェクトとして指定したら、そのプロジェクトに.gitlab-ci.yml を記述します。例えば

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

環境スコープの設定

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

各スコープを使用できるのは、1つの管理プロジェクトに対して1つのクラスターのみです。

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

クラスター環境スコープ
開発者向け*
ステージングstaging
生産production

.gitlab-ci.yml で設定した以下の環境は、それぞれDevelopment、Staging、Productionクラスターにデプロイされます。

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