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

Azure AKSクラスターの作成

Infrastructure as Code(IaC)を使用して、Azure Kubernetes Service(AKS)でクラスターを作成できます。このプロセスでは、AzureおよびKubernetes Terraformプロバイダーを使用して、AKSクラスターを作成します。クラスターをKubernetes向けGitLabエージェントを使用してGitLabに接続します。

はじめる前:

ステップ:

  1. サンプルプロジェクトをインポートする
  2. Kubernetes用エージェントを登録する
  3. プロジェクトを設定する
  4. クラスターをプロビジョニングする

サンプルプロジェクトをインポートする

Infrastructure as Codeを使用してGitLabからクラスターを作成するには、クラスターを管理するプロジェクトを作成する必要があります。このチュートリアルでは、サンプルプロジェクトから開始し、必要に応じて変更します。

URLでサンプルプロジェクトをインポートすることから始めます。

プロジェクトをインポートするには:

  1. 左側のサイドバーの上部で、新規作成 plus )を選択し、新規プロジェクト/リポジトリを選択します。
  2. プロジェクトのインポートを選択します。
  3. リポジトリのURLを選択します。
  4. GitリポジトリのURLには、https://gitlab.com/gitlab-org/ci-cd/deploy-stage/environments-group/examples/gitlab-terraform-aks.gitと入力します。
  5. フィールドに入力し、プロジェクトを作成を選択します。

このプロジェクトでは、以下が提供されます:

エージェントを登録する

Kubernetes用GitLabエージェントを作成するには:

  1. 左側のサイドバーで、操作 > Kubernetesクラスターを選択します。
  2. **クラスターに接続(エージェント)**を選択します。
  3. Select an agent(エージェントを選択)ドロップダウンリストからaks-agentを選択し、エージェントの登録を選択します。
  4. GitLabは、エージェントの登録トークンを生成します。後で必要になるため、このシークレットトークンを安全に保管してください。
  5. GitLabは、エージェントサーバー(KAS)のアドレスを提供します。これも後で必要になります。

プロジェクトを設定する

CI/CD環境変数を使用してプロジェクトを設定します。

Required configuration(必要な設定):

  1. 左側のサイドバーで、設定 > CI/CDを選択します。
  2. 変数を展開します。
  3. 変数ARM_CLIENT_IDをAzureクライアントIDに設定します。
  4. 変数ARM_CLIENT_SECRETをAzureクライアントシークレットに設定します。
  5. 変数ARM_TENANT_IDをサービスプリンシパルに設定します。
  6. 変数TF_VAR_agent_tokenを、前のタスクに表示されるエージェントトークンに設定します。
  7. 変数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で、次の手順を実行します:

  1. 左側のサイドバーで、ビルド > パイプラインを選択します。
  2. Play(Play)( play )の横にある、ドロップダウンリストのアイコン( chevron-lg-down )を選択します。
  3. デプロイを選択して、デプロイメントジョブを手動でトリガーします。

パイプラインが正常に完了すると、新しいクラスターを表示できます:

  • Azureの場合: Azure portalから、Kubernetes services > Viewを選択します。
  • GitLabで、次の手順を実行します: 左側のサイドバーで、操作 > Kubernetesクラスターを選択します。

クラスターを使用する

クラスターをプロビジョニングすると、GitLabに接続され、デプロイの準備が整います。接続を確認するには:

  1. 左側のサイドバーで、操作 > Kubernetesクラスターを選択します。
  2. リストで、接続ステータス列を表示します。

接続の機能の詳細については、Kubernetes向けGitLabエージェントのドキュメントを参照してください。

クラスターを削除する

クリーンアップジョブは、デフォルトではパイプラインに含まれていません。作成されたすべてのリソースを削除するには、クリーンアップジョブを実行する前に、GitLab CI/CDテンプレートを変更する必要があります。

すべてのリソースを削除するには:

  1. 次の内容を.gitlab-ci.ymlファイルに追加します:

    stages:
      - init
      - validate
      - test
      - build
      - deploy
      - cleanup
    
    destroy:
      extends: .terraform:destroy
      needs: []
  2. 左側のサイドバーで、ビルド > パイプラインを選択し、最新のパイプラインを選択します。

  3. destroyジョブで、Play(Play)( play )を選択します。