Snabbstart: Distribuera ett Azure Container Linux(ACL) Azure Kubernetes Service (AKS) kluster med hjälp av en ARM-mall

I den här snabbstarten använder du en Azure Resource Manager-mall (ARM) för att skapa ett Azure Kubernetes Service (AKS) kluster som kör Azure Container Linux (ACL) som nodoperativsystem (OS). När du har installerat förhandskraven skapar du ett SSH-nyckelpar, granskar mallen, distribuerar mallen och ansluter till klustret.

överväganden och begränsningar för Azure Container Linux (ACL)

Innan du börjar bör du granska följande överväganden och begränsningar för ACL:

Förutsättningar

Note

Du kan använda antingen Azure Cloud Shell eller en lokal installation av Azure CLI för att köra kommandona i den här snabbstarten.

  • Om du kör Azure CLI lokalt installera Azure CLI. Om du kör på Windows eller macOS, överväg att köra Azure CLI i en Docker-container. För mer information, se Hur man kör Azure CLI i en Docker-container.
  • Om du använder en lokal installation loggar du in på Azure CLI med kommandot az login. För att avsluta autentiseringsprocessen, följ stegen som visas i din terminal. Andra inloggningsalternativ finns i Logga in med Azure CLI.
  • Om du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
  • Azure Container Linux kräver Azure CLI version 2.86.0 eller senare. Använd kommandot az version för att hitta Azure CLI version och beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen använder du az upgrade kommandot .
  • Om du inte redan har kubectl installerat installerar du det via Azure CLI med kommandot az aks install-cli eller följer anvisningarna uppström.
  • Om du vill skapa ett AKS-kluster med hjälp av en ARM-mall måste du ange en offentlig SSH-nyckel. Om du behöver den här resursen går du till avsnittet Skapa ett SSH-nyckelpar för att generera ett innan du distribuerar mallen. Om du redan har ett SSH-nyckelpar kan du gå vidare till avsnittet Granska mallen .
  • Den identitet som du använder för att skapa klustret måste ha lämpliga minimibehörigheter. Mer information om åtkomst och identitet för AKS finns i Åtkomst- och identitetsalternativ för Azure Kubernetes Service (AKS).
  • För att distribuera en ARM-mall behöver du skrivbehörighet för de resurser som du distribuerar och åtkomst till alla åtgärder för resurstypen Microsoft.Resources/deployments. Om du till exempel vill distribuera en virtuell dator (VM) behöver du Microsoft. Compute/virtualMachines/write och Microsoft. Behörigheter för resurser/distributioner/*. Det finns en lista med roller och behörigheter i Inbyggda roller i Azure.

Skapa ett SSH-nyckelpar

För att få åtkomst till AKS-noder ansluter du med ett SSH-nyckelpar (offentligt och privat) som du genererar med kommandot ssh-keygen . Som standard skapas dessa filer i katalogen ~/.ssh . ssh-keygen Kommandot skriver över alla SSH-nyckelpar med samma namn som redan finns på den angivna platsen.

  1. Gå till https://shell.azure.com för att öppna Cloud Shell i din webbläsare.

  2. Kör ssh-keygen kommandot. I följande exempel skapas ett SSH-nyckelpar med RSA-kryptering och en bit längd på 4096:

    ssh-keygen -t rsa -b 4096
    

Mer information om hur du skapar SSH-nycklar finns i Skapa och hantera SSH-nycklar för autentisering i Azure.

Granska mallens layout

Följande distribution använder en ARM-mall från Azure Quickstart Templates:

{
  "$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]"
    }
  }
}

Resurstypen som definieras i ARM-mallen är Microsoft.ContainerService/managedClusters.

Använd mallen

  1. Välj Distribuera till Azure för att logga in och öppna en mall.

    Button för att distribuera mallen Resource Manager till Azure.

  2. På sidan Grundläggande lämnar du standardvärdena för OS Disk Size GB, Agent Count, Agent VM Size och OS Type och konfigurerar följande mallparametrar:

    • Prenumeration: Välj en Azure-prenumeration.
    • Resursgrupp: Välj Skapa ny. Ange ett unikt namn för resursgruppen, till exempel myACLResourceGroup, och välj sedan OK.
    • OS SKU: Ange AzureContainerLinux.
    • Plats: Välj en plats, till exempel USA, västra.
    • Klusternamn: Ange ett unikt namn för AKS-klustret, till exempel myACLCluster.
    • DNS-prefix: Ange ett unikt DNS-prefix för klustret, till exempel myaclcluster.
    • Användarnamn för Linux-administratör: Ange ett användarnamn för att ansluta med hjälp av SSH, till exempel azureuser.
    • Källa för offentlig SSH-nyckel: Välj Använd befintlig offentlig nyckel.
    • Nyckelparnamn: Kopiera och klistra in den offentliga delen av SSH-nyckelparet (som standard innehållet i ~/.ssh/id_rsa.pub).
  3. Välj Granska + skapa>Skapa.

    Det tar några minuter att skapa AKS-klustret. Vänta tills distributionen har slutförts innan du ansluter till klustret.

Anslut till klustret

Om du vill hantera ett Kubernetes-kluster använder du Kubernetes-kommandoradsklienten kubectl. kubectl är redan installerat om du använder Azure Cloud Shell. Om du vill installera kubectl lokalt använder du kommandot az aks install-cli.

  1. Konfigurera kubectl för att ansluta till kubernetes-klustret med hjälp av az aks get-credentials kommandot . Det här kommandot laddar ned autentiseringsuppgifter och konfigurerar Kubernetes CLI för att använda dem.

    az aks get-credentials --resource-group myACLResourceGroup --name myACLCluster
    
  2. Kontrollera anslutningen till klustret med hjälp av kubectl get kommandot . Det här kommandot returnerar en lista över klusternoderna.

    kubectl get nodes
    

    Följande exempelutdata visar de tre noder som skapades i föregående steg. Se till att nodens status är Ready:

    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
    

Ta bort klustret

Om du inte längre behöver de resurser som du skapade i den här snabbstarten kan du rensa dem för att undvika Azure avgifter.

Ta bort resursgruppen Azure och alla relaterade resurser med kommandot az group delete:

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

I den här snabbstarten distribuerade du ett AKS-kluster (Azure Container Linux) med hjälp av en ARM-mall. Mer information om ACL finns i följande resurser: