クラスター管理プロジェクト(非推奨)
- GitLab 12.5で導入されました。
- GitLab 14.5 で非推奨。
- GitLab 15.0ではセルフマネージドで無効。
フラグ: セルフマネジメントのGitLabでは、デフォルトではこの機能は利用できません。利用可能にするには、管理者がcertificate_based_clusters
という機能フラグを有効にします。
プロジェクトをクラスターの管理プロジェクトとして指定できます。管理プロジェクトを使用して、Kubernetescluster-admin
権限でデプロイジョブを実行できます。
これは次のような場合に便利です:
- クラスタ全体のアプリケーションをクラスタにインストールするパイプラインの作成。詳細は管理プロジェクトテンプレートを参照してください。
-
cluster-admin
権限を必要とするジョブ。
権限
管理プロジェクトだけがcluster-admin
権限を受け取ります。他のすべてのプロジェクトは、引き続き名前空間スコープedit
レベルの特権を受け取ります。
管理プロジェクトは、以下のように制限されます:
- プロジェクト・レベルのクラスターの場合、管理プロジェクトはクラスターのプロジェクトと同じネームスペース (またはその子孫) にある必要があります。
- グループ・レベルのクラスターの場合、管理プロジェクトはクラスターのグループと同じグループ (またはその子孫) にある必要があります。
- インスタンス・レベルのクラスターの場合は、そのような制限はありません。
クラスター管理プロジェクトの作成と設定方法
クラスター管理プロジェクトを使用してクラスターを管理するには、以下の手順に従います:
- クラスターの管理プロジェクトとして使用する新しいプロジェクトを作成します。
- クラスターを管理プロジェクトに関連付けます。
- クラスターのパイプラインを設定します。
- 環境スコープを設定します。
クラスタ管理プロジェクトをクラスターに関連付けます。
クラスタ管理プロジェクトをクラスターに関連付けるには、以下の手順に従います:
- 適切な設定ページに移動します。たとえば
- プロジェクトレベルのクラスターの場合、プロジェクトのOperate > Kubernetes clustersページに移動します。
- グループレベルのクラスターは、グループのKubernetesページに移動します。
-
インスタンスレベルのクラスター:
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- Kubernetesを選択します。
- 詳細設定を展開します。
- クラスター管理プロジェクト]ドロップダウンリストから、前の手順で作成したクラスター管理プロジェクトを選択します。
パイプラインの設定
プロジェクトをクラスターの管理プロジェクトとして指定したら、そのプロジェクトに.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