クイック スタート: ARM テンプレートを使用して Azure Container Linux (ACL) Azure Kubernetes Service (AKS) クラスターをデプロイする

このクイック スタートでは、Azure Resource Manager (ARM) テンプレートを使用して、ノード オペレーティング システム (OS) として Container Linux (ACL) Azure実行するAzure Kubernetes Service (AKS) クラスターを作成します。 前提条件をインストールしたら、SSH キー ペアを作成し、テンプレートを確認し、テンプレートをデプロイして、クラスターに接続します。

Azure Container Linux (ACL) に関する考慮事項と制限事項

開始する前に、ACL に関する次の考慮事項と制限事項を確認してください。

Prerequisites

Note

Azure Cloud ShellまたはAzure CLIのローカル インストールを使用して、このクイック スタートのコマンドを実行できます。

  • Azure CLIをローカルで実行している場合は、 Azure CLIをインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。
  • ローカル インストールを使用している場合は、az login コマンドを使用してAzure CLIにサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。
  • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。
  • Azure Container Linux には、バージョン 2.86.0 以降Azure CLI必要です。 az version コマンドを使用して、インストールされているAzure CLIバージョンと依存ライブラリを検索します。 最新バージョンにアップグレードするには、 az upgrade コマンドを使用します。
  • kubectl がまだインストールされていない場合は、az aks install-cli コマンドを使用して Azure CLI を使用してインストールするか、upstream の手順 に従います。
  • ARM テンプレートを使用して AKS クラスターを作成するには、SSH 公開キーを指定する必要があります。 このリソースが必要な場合は、「 SSH キー ペアの作成 」セクションに移動して、テンプレートをデプロイする前に SSH キー ペアを生成します。 SSH キー ペアが既にある場合は、「 テンプレートの確認 」セクションに進むことができます。
  • クラスターの作成に使用する ID には、適切な最小限のアクセス許可が必要です。 AKS のアクセスと ID の情報については、「Azure Kubernetes Service (AKS) でのアクセスと ID オプション」を参照してください。
  • ARM テンプレートをデプロイするには、デプロイするリソースに対する書き込みアクセス権と、Microsoft.Resources/deployments リソースの種類に対するすべての操作へのアクセス権が必要です。 たとえば、仮想マシン (VM) をデプロイするには、Microsoftが必要です。Compute/virtualMachines/write および Microsoft。リソース/デプロイ/* アクセス許可。 ロールとアクセス許可の一覧については、Azure の組み込みロールに関するページを参照してください。

SSH キー ペアを作成する

AKS ノードにアクセスするには、ssh-keygen コマンドを使用して生成する SSH キーの組 (公開および秘密) を使用して接続します。 既定では、これらのファイルは ~/.ssh ディレクトリに作成されます。 ssh-keygen コマンドを実行すると、指定した場所に同じ名前の SSH キーの組が既に存在する場合は上書きされます。

  1. https://shell.azure.com にアクセスし、お使いのブラウザーで Cloud Shell を開きます。

  2. ssh-keygen コマンドを実行します。 次の例では、RSA 暗号化と 4096 ビット長を使用して SSH キーの組が作成されます。

    ssh-keygen -t rsa -b 4096
    

SSH キーの作成の詳細については、Azure での認証用の SSH キーの作成と管理に関するページを参照してください。

テンプレートを確認する

次のデプロイでは、Azureクイック スタート テンプレートを使用します。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "clusterName": {
      "type": "string",
      "defaultValue": "aclakscluster",
      "metadata": {
        "description": "The name of the Managed Cluster resource."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "The location of the Managed Cluster resource."
      }
    },
    "dnsPrefix": {
      "type": "string",
      "metadata": {
        "description": "Optional DNS prefix to use with hosted Kubernetes API server FQDN."
      }
    },
    "osDiskSizeGB": {
      "type": "int",
      "defaultValue": 0,
      "minValue": 0,
      "maxValue": 1023,
      "metadata": {
        "description": "Disk size (in GB) to provision for each of the agent pool nodes. Specifying 0 applies the default disk size for that agentVMSize."
      }
    },
    "agentCount": {
      "type": "int",
      "defaultValue": 3,
      "minValue": 1,
      "maxValue": 50,
      "metadata": {
        "description": "The number of nodes for the cluster."
      }
    },
    "agentVMSize": {
      "type": "string",
      "defaultValue": "standard_d2s_v3",
      "metadata": {
        "description": "The size of the Virtual Machine."
      }
    },
    "linuxAdminUsername": {
      "type": "string",
      "metadata": {
        "description": "User name for the Linux Virtual Machines."
      }
    },
    "sshRSAPublicKey": {
      "type": "string",
      "metadata": {
        "description": "Configure all linux machines with the SSH RSA public key string."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.ContainerService/managedClusters",
      "apiVersion": "2026-03-01",
      "name": "[parameters('clusterName')]",
      "location": "[parameters('location')]",
      "identity": {
        "type": "SystemAssigned"
      },
      "properties": {
        "dnsPrefix": "[parameters('dnsPrefix')]",
        "agentPoolProfiles": [
          {
            "name": "agentpool",
            "osDiskSizeGB": "[parameters('osDiskSizeGB')]",
            "count": "[parameters('agentCount')]",
            "vmSize": "[parameters('agentVMSize')]",
            "osType": "Linux",
            "osSKU": "AzureContainerLinux",
            "mode": "System"
          }
        ],
        "linuxProfile": {
          "adminUsername": "[parameters('linuxAdminUsername')]",
          "ssh": {
            "publicKeys": [
              {
                "keyData": "[parameters('sshRSAPublicKey')]"
              }
            ]
          }
        }
      }
    }
  ],
  "outputs": {
    "controlPlaneFQDN": {
      "type": "string",
      "value": "[reference(resourceId('Microsoft.ContainerService/managedClusters', parameters('clusterName')), '2024-02-01').fqdn]"
    }
  }
}

ARM テンプレートで定義されているリソースの種類は Microsoft.ContainerService/managedClusters です。

テンプレートをデプロイする

  1. [Azure にデプロイ]を選択してサインインし、テンプレートを開きます。

    Resource Manager テンプレートを Azure に配置するボタン。

  2. 基本 ページで、 OS ディスク サイズ GBエージェント数エージェント VM サイズOS のタイプを既定値のままにして、次のテンプレート パラメータを構成します:

    • サブスクリプション:Azure サブスクリプションを選択します。
    • [リソース グループ] : [新規作成] を選択します。 リソース グループの一意の名前 ( myACLResourceGroup など) を入力し、[ OK] を選択します。
    • OS SKU: AzureContainerLinux を指定します
    • 場所: 米国西部などの場所を選択します。
    • クラスター名: aKS クラスターの一意の名前 ( myACLCluster など) を入力します。
    • DNS プレフィックス: myaclcluster など、クラスターの一意の DNS プレフィックスを入力します。
    • [Linux Admin Username](Linux 管理者ユーザー名) : SSH を使用して接続するためのユーザー名 (azureuser など) を入力します。
    • SSH 公開キー ソース: [既存の公開キー 使用] を選択します。
    • キー ペア名: SSH キー ペアの パブリック パーツ (既定では、~/.ssh/id_rsa.pub の内容) をコピーして貼り付けます。
  3. [確認および作成]>[作成] の順に選択します。

    AKS クラスターの作成には数分かかります。 クラスターに接続する前に、デプロイが完了 するまで待ちます

クラスターに接続する

Kubernetes クラスターを管理するには、Kubernetes のコマンドライン クライアントである kubectl を使います。 Azure Cloud Shell を使用している場合、kubectl は既にインストールされています。 kubectl をローカルにインストールするには、az aks install-cli コマンドを使用します。

  1. kubectl コマンドを使用して、Kubernetes クラスターに接続するように az aks get-credentials を構成します。 このコマンドは、資格情報をダウンロードし、それを使用するように Kubernetes CLI を構成します。

    az aks get-credentials --resource-group myACLResourceGroup --name myACLCluster
    
  2. kubectl get コマンドを使用して、ご利用のクラスターへの接続を確認します。 このコマンドでは、クラスター ノードの一覧が返されます。

    kubectl get nodes
    

    次の出力例は、前の手順で作成された 3 つのノードを示しています。 ノードの状態が "準備完了" であることを確認します。

    NAME                       STATUS   ROLES   AGE     VERSION
    aks-agentpool-12345678-0   Ready    agent   6m44s   v1.34.0
    aks-agentpool-12345678-1   Ready    agent   6m46s   v1.34.0
    aks-agentpool-12345678-2   Ready    agent   6m45s   v1.34.0
    

クラスターを削除する

このクイック スタートで作成したリソースが不要になった場合は、Azure料金を回避するためにクリーンアップできます。

az group delete コマンドを使用して、Azure リソース グループとすべての関連リソースを削除します。

az group delete --name myACLResourceGroup --yes --no-wait

このクイック スタートでは、ARM テンプレートを使用して Azure Container Linux (ACL) AKS クラスターをデプロイしました。 ACL の詳細については、次のリソースを参照してください。