Azure AKSクラスターの作成
Infrastructure as Code(IaC)を使用して、Azure Kubernetes Service(AKS)でクラスターを作成できます。このプロセスでは、AzureおよびKubernetes Terraformプロバイダーを使用して、AKSクラスターを作成します。クラスターをKubernetes向けGitLabエージェントを使用してGitLabに接続します。
はじめる前:
- 構成済みのセキュリティ認証情報が設定されたMicrosoft Azureアカウント。
- Runnerを使用して、GitLab CI/CDパイプラインを実行できます。
ステップ:
サンプルプロジェクトをインポートする
Infrastructure as Codeを使用してGitLabからクラスターを作成するには、クラスターを管理するプロジェクトを作成する必要があります。このチュートリアルでは、サンプルプロジェクトから開始し、必要に応じて変更します。
URLでサンプルプロジェクトをインポートすることから始めます。
プロジェクトをインポートするには:
- 左側のサイドバーの上部で、新規作成( )を選択し、新規プロジェクト/リポジトリを選択します。
- プロジェクトのインポートを選択します。
- リポジトリのURLを選択します。
- GitリポジトリのURLには、
https://gitlab.com/gitlab-org/ci-cd/deploy-stage/environments-group/examples/gitlab-terraform-aks.gitと入力します。 - フィールドに入力し、プロジェクトを作成を選択します。
このプロジェクトでは、以下が提供されます:
- Azure Kubernetes Service(AKS)クラスター。
- クラスターにインストールされているKubernetes向けGitLabエージェント。
エージェントを登録する
Kubernetes用GitLabエージェントを作成するには:
- 左側のサイドバーで、操作 > Kubernetesクラスターを選択します。
- **クラスターに接続(エージェント)**を選択します。
- Select an agent(エージェントを選択)ドロップダウンリストから
aks-agentを選択し、エージェントの登録を選択します。 - GitLabは、エージェントの登録トークンを生成します。後で必要になるため、このシークレットトークンを安全に保管してください。
- GitLabは、エージェントサーバー(KAS)のアドレスを提供します。これも後で必要になります。
プロジェクトを設定する
CI/CD環境変数を使用してプロジェクトを設定します。
Required configuration(必要な設定):
- 左側のサイドバーで、設定 > CI/CDを選択します。
- 変数を展開します。
- 変数
ARM_CLIENT_IDをAzureクライアントIDに設定します。 - 変数
ARM_CLIENT_SECRETをAzureクライアントシークレットに設定します。 - 変数
ARM_TENANT_IDをサービスプリンシパルに設定します。 - 変数
TF_VAR_agent_tokenを、前のタスクに表示されるエージェントトークンに設定します。 - 変数
TF_VAR_kas_addressを、前のタスクに表示されるエージェントサーバーアドレスに設定します。
Optional configuration(オプションの設定):
ファイルvariables.tfには、必要に応じてオーバーライドできる他の変数が含まれています:
TF_VAR_location: クラスターのリージョンを設定します。TF_VAR_cluster_name: クラスターの名前を設定します。TF_VAR_kubernetes_version: Kubernetesのバージョンを設定します。TF_VAR_create_resource_group: 新しいリソースグループの作成を有効または無効にすることができます。(デフォルトはtrueに設定されています)。TF_VAR_resource_group_name: リソースグループの名前を設定します。TF_VAR_agent_namespace: Kubernetes向けGitLabエージェントのKubernetesネームスペースを設定します。
詳細なリソースオプションについては、Azure TerraformプロバイダーおよびKubernetes Terraformプロバイダーのドキュメントを参照してください。
クラスターをプロビジョニングする
プロジェクトを設定したら、手動でクラスターのプロビジョニングをトリガーします。GitLabで、次の手順を実行します:
- 左側のサイドバーで、ビルド > パイプラインを選択します。
- Play(Play)( )の横にある、ドロップダウンリストのアイコン( )を選択します。
- デプロイを選択して、デプロイメントジョブを手動でトリガーします。
パイプラインが正常に完了すると、新しいクラスターを表示できます:
- Azureの場合: Azure portalから、Kubernetes services > Viewを選択します。
- GitLabで、次の手順を実行します: 左側のサイドバーで、操作 > Kubernetesクラスターを選択します。
クラスターを使用する
クラスターをプロビジョニングすると、GitLabに接続され、デプロイの準備が整います。接続を確認するには:
- 左側のサイドバーで、操作 > Kubernetesクラスターを選択します。
- リストで、接続ステータス列を表示します。
接続の機能の詳細については、Kubernetes向けGitLabエージェントのドキュメントを参照してください。
クラスターを削除する
クリーンアップジョブは、デフォルトではパイプラインに含まれていません。作成されたすべてのリソースを削除するには、クリーンアップジョブを実行する前に、GitLab CI/CDテンプレートを変更する必要があります。
すべてのリソースを削除するには:
次の内容を
.gitlab-ci.ymlファイルに追加します:stages: - init - validate - test - build - deploy - cleanup destroy: extends: .terraform:destroy needs: []左側のサイドバーで、ビルド > パイプラインを選択し、最新のパイプラインを選択します。
destroyジョブで、Play(Play)( )を選択します。