Schnellstart: Erstellen eines Azure Kubernetes Service (AKS) automatischen Clusters

Gilt für: ✔️ AKS Automatic

Azure Kubernetes Service (AKS) Automatic ist eine verwaltete Kubernetes-Erfahrung, die AKS-Clustereinrichtung und -vorgänge automatisiert und Best Practice-Konfigurationen einbettet. AKS Automatic enthält auch ein [Pod-Bereitschafts-SLA][azure-sla], das garantiert, dass 99,9 % der qualifizierenden Pod-Bereitschaftsvorgänge innerhalb von 5 Minuten abgeschlossen werden und somit eine zuverlässige, selbstheilende Infrastruktur für Ihre Anwendungen gewährleistet. In dieser Schnellstartanleitung wird Folgendes vermittelt:

  • Stellen Sie einen AKS Automatic-Cluster bereit.
  • Führen Sie eine Beispielanwendung mit mehreren Containern mit einer Gruppe von Microservices und Web-Front-Ends aus, die ein Einzelhandelsszenario simulieren.

Bevor Sie anfangen

  • Azure CLI Version 2.86.0 oder höher. Um die Version zu finden, führen Sie den Befehl aus az --version . Wenn Sie eine Installation oder ein Upgrade durchführen müssen, finden Sie weitere Informationen unter Azure CLI installieren.
  • Wenn Sie mehrere Azure-Abonnements haben, wählen Sie mit dem Befehl az account set die entsprechende Abonnement-ID für die Abrechnung von Ressourcen aus.
  • Zum Bereitstellen einer Bicep-Datei benötigen Sie Schreibzugriff auf die Ressourcen, die Sie erstellen, sowie Zugriff auf alle Vorgänge des Ressourcentyps Microsoft.Resources/deployments. Um beispielsweise einen virtuellen Computer (VM) zu erstellen, benötigen Sie Microsoft.Compute/virtualMachines/write und Microsoft.Resources/deployments/* Berechtigungen. Eine Liste der Rollen und Berechtigungen finden Sie unter Azure integrierte Rollen.

Hinweis

In diesem Beispiel wird der automatische AKS-Cluster mit der Ressource des AzureRM-Anbieters azurerm_kubernetes_automatic_cluster erstellt, für den die AzureRM-Anbieterversion v4.81 oder höher erforderlich ist. Ein entsprechendes Beispiel, das stattdessen den AzAPI-Anbieter verwendet, finden Sie unter 101-aks-automatic-azapi. Erreichen Sie azAPI, wenn Sie die direkte Kontrolle über die Nutzlast der verwalteten Cluster-API oder eine API-Version oder Eigenschaft benötigen, die der AzureRM-Anbieter noch nicht angezeigt hat.

Von Bedeutung

Ab AKS 1.36 werden neue AKS-Automatik-Cluster standardmäßig Kubernetes Gateway API über das Application Routing Add-on anstelle von Verwaltetem NGINX Ingress mit dem Application Routing Add-on aufgrund der Ablösung von Ingress NGINX durch das Upstream aktivieren.

Vorhandene automatische Cluster sind nicht betroffen, sollten aber mit der Migration zur Kubernetes-Gateway-API über das Anwendungsrouting-Add-On beginnen.

Einschränkungen

Die folgenden Einschränkungen gelten für automatische AKS-Cluster:

  • AKS Automatic ist in den folgenden Regionen allgemein verfügbar: australiaeast, austriaeast, belgiumcentral, brazilsouth, canadacentral, centralindia, centralus, chilecentral, denmarkeast, eastasia, eastus, eastus2, francecentral, germanywestcentral, indonesiacentral, israelcentral, italynorth, japaneast, japanwest, koreacentral, malaysiawest, mexicocentral, newzealandnorth, northeurope, norwayeast, polandcentral, southafricanorth, southcentralus, southeastasia, spaincentral, swedencentral, switzerlandnorth, uaenorth, uksouth, westeurope, westus2, westus3.
    • Neue automatische AKS-Cluster aktivieren standardmäßig verwaltete Systemknotenpools und LocalDNS. Sie können keine automatischen AKS-Cluster ohne verwaltete Systemknotenpools in einer beliebigen Region erstellen.
  • AKS Automatic ist mit node resource group lockdown vorkonfiguriert, wodurch keine Änderungen an der Ressourcengruppe MC_ zulässig sind und virtuelle Netzwerkverknüpfungen in der standardmäßigen privaten DNS-Zone verhindert werden. Für VNet-übergreifende oder benutzerdefinierte DNS-Szenarien verwenden Sie ein benutzerdefiniertes Netzwerk und einen privaten DNS gemäß den Anweisungen unter Erstellen eines privaten Azure Kubernetes Service (AKS) automatischen Clusters in einem benutzerdefinierten virtuellen Netzwerk.
  • Azure CLI Version 2.86.0 oder höher ist erforderlich. Um die Version zu finden, führen Sie den Befehl aus az --version . Wenn Sie eine Installation oder ein Upgrade durchführen müssen, finden Sie weitere Informationen unter Azure CLI installieren.
  • Die folgenden Erweiterungen werden nicht unterstützt:
  • Windows-Knoten werden nicht unterstützt.
  • Die Migration von AKS-Basis-SKU zu automatischer SKU wird nicht unterstützt.
  • Migrationen zwischen automatischen AKS-Clustern ohne verwaltete Systemknotenpools und AKS Automatische Cluster mit verwalteten Systemknotenpools werden nicht unterstützt.

Erstellen einer Ressourcengruppe

Eine Azure-Ressourcengruppe ist eine logische Gruppe, in der Azure Ressourcen bereitgestellt und verwaltet werden.

Erstellen Sie eine Ressourcengruppe mit dem Befehl az group create. Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup am Standort canadacentral erstellt:

az group create --name myResourceGroup --location canadacentral

Die folgende Beispielausgabe ähnelt der Ausgabe bei der erfolgreichen Erstellung der Ressourcengruppe:

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "location": "canadacentral",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Erstellen eines AKS Automatic-Clusters

Erstellen Sie einen automatischen AKS-Cluster mit dem az aks create-Befehl, wobei der --sku-Parameter auf automatic festgelegt wird. Im folgenden Beispiel wird ein Cluster mit dem Namen myAKSAutomaticCluster mit verwaltetem Prometheus und aktivierter Container Insights-Integration erstellt:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSAutomaticCluster \
    --sku automatic
    --enable-hosted-system

Wenn die Bereitstellung abgeschlossen ist, zeigt die Ausgabe ein hostedSystemProfile-Eigenschaftsset mit einem enabled-Eigenschaftsset, das auf true festgelegt ist. Sie können auch den folgenden Befehl ausführen, um die hostedSystemProfile Eigenschaften anzuzeigen:

az aks show \
  --resource-group myResourceGroup \
  --name myAKSAutomaticCluster \
  --query hostedSystemProfile
{
  "enabled": true,
  "nodeSubnetId": null,
  "systemNodeSubnetId": null
}

Erstellen eines Automatic Kubernetes-Clusters

  1. Um einen automatischen AKS-Cluster zu erstellen, suchen und wählen Sie Kubernetes-Dienste aus. Dadurch gelangen Sie zur Kubernetes Center -Seite (Vorschau ).

  2. Wählen Sie auf der Kubernetes Center-Seite (Vorschau) die Option"Automatische Kubernetes-Cluster>" aus.

    Die Screenshot der Schaltfläche

  3. Füllen Sie auf der Registerkarte " Grundlagen " alle erforderlichen Felder aus (Abonnement, Ressourcengruppe, Kubernetes-Clustername und Region), und wählen Sie dann "Weiter" aus.

    Die Screenshot der Registerkarte

  4. Wählen Sie auf der Registerkarte Monitoring Ihre gewünschten Überwachungskonfigurationen aus Azure Monitor (Containereinblicke), verwaltete Prometheus- und Grafana-Dashboards und Benachrichtigungen aus, und wählen Sie dann Next aus.

     Der Screenshot der Registerkarte

  5. Wählen Sie auf der Registerkarte Advanced Ihre gewünschten erweiterten Konfigurationen für den privaten Zugriff aus, Azure Virtual Networking, Managed Identity, Container Network Security (ACNS) und Verwaltete Kubernetes-Namespaces, und wählen Sie dann Review + create aus.

    Der Screenshot der Registerkarte

  6. Überprüfen Sie die Konfigurationen auf der Registerkarte " Überprüfen+ Erstellen ", und wählen Sie dann "Erstellen" aus, um den automatischen AKS-Cluster bereitzustellen.

  7. Starten Sie mit der Konfiguration Ihrer ersten Anwendung aus GitHub und mit dem Einrichten einer automatisierten Deployment-Pipeline.

    Screenshot: Registerkarte „Erste Schritte“ auf dem Blatt „Übersicht“ nach dem Erstellen eines AKS Automatic-Clusters im Azure-Portal

Überprüfen Sie die Bicep-Datei

Die folgende Bicep Datei definiert einen automatischen AKS-Cluster:

@description('The name of the managed cluster resource.')
param clusterName string = 'myAKSAutomaticCluster'

@description('The location of the managed cluster resource.')
param location string = resourceGroup().location

resource aks 'Microsoft.ContainerService/managedClusters@2026-02-01' ' = {
  name: clusterName
  location: location
  sku: {
    name: 'Automatic'
  }
  identity: {
    type: 'SystemAssigned'
  }
}

Weitere Informationen zur in der datei Bicep definierten Ressource finden Sie im Microsoft. ContainerService/managedClusters Reference.

Bereitstellen der Bicep Datei

  1. Speichern Sie die Bicep Datei als main.bicep auf Ihren lokalen Computer.

    Von Bedeutung

    Die Bicep-Datei legt den clusterName Parameter auf die Zeichenfolge myAKSAutomaticCluster fest. Wenn Sie einen anderen Clusternamen wünschen, ändern Sie die Zeichenfolge in den gewünschten Clusternamen, ehe Sie die Datei auf Ihrem Computer speichern.

  2. Stellen Sie die Bicep Datei mithilfe des Befehls [az deployment group create][az-deployment-group-create] bereit.

    az deployment group create --resource-group myResourceGroup --template-file main.bicep
    

    Die Erstellung des AKS-Clusters dauert einige Minuten. Warten Sie, bis der Cluster erfolgreich bereitgestellt wurde, bevor Sie mit dem nächsten Schritt fortfahren.

Überprüfen Sie den Terraform-Code

Hinweis

Der Beispielcode für diesen Artikel befindet sich im Azure Terraform-GitHub-Repository. Sie können die Protokolldatei anzeigen, die die Testergebnisse aus den aktuellen und früheren Versionen von Terraform enthält.

Sehen Sie weitere Artikel und Beispielcode, die zeigen, wie Terraform zur Verwaltung von Azure-Ressourcen verwendet wird.

  1. Erstellen Sie ein Verzeichnis, um den Terraform-Beispielcode zu testen und als aktuelles Verzeichnis festzulegen.

  2. Erstellen Sie eine Datei mit dem Namen providers.tf, und fügen Sie den folgenden Code ein:

    terraform {
      required_version = ">= 1.0"
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>5.0"
        }
        random = {
          source  = "hashicorp/random"
          version = "~>3.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  3. Erstellen Sie eine Datei mit dem Namen main.tf und fügen Sie folgenden Code hinzu:

    # Create a random name for the resource group using random_pet
    resource "random_pet" "rg_name" {
      prefix = var.resource_group_name_prefix
    }
    
    # Create a resource group using the generated random name
    resource "azurerm_resource_group" "rg" {
      location = var.resource_group_location
      name     = random_pet.rg_name.id
    }
    
    # Create a random name for the AKS Automatic cluster
    resource "random_pet" "cluster_name" {
      prefix = var.cluster_name_prefix
    }
    
    # Create the AKS Automatic cluster
    resource "azurerm_kubernetes_automatic_cluster" "aks_automatic" {
      name                = random_pet.cluster_name.id
      location            = azurerm_resource_group.rg.location
      resource_group_name = azurerm_resource_group.rg.name
    
      identity {
        type = "SystemAssigned"
      }
    }
    
  4. Erstellen Sie eine Datei mit dem Namen variables.tf und fügen Sie folgenden Code hinzu:

    variable "resource_group_location" {
      type        = string
      default     = "westus2"
      description = "Location of the resource group."
    }
    
    variable "resource_group_name_prefix" {
      type        = string
      default     = "rg"
      description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription."
    }
    
    variable "cluster_name_prefix" {
      type        = string
      default     = "aks-automatic"
      description = "Prefix of the AKS Automatic cluster name that's combined with a random ID so the name is unique in your Azure subscription."
    }
    
  5. Erstellen Sie eine Datei mit dem Namen outputs.tf, und fügen Sie den folgenden Code ein:

    output "resource_group_name" {
      value = azurerm_resource_group.rg.name
    }
    
    output "cluster_name" {
      value = azurerm_kubernetes_automatic_cluster.aks_automatic.name
    }
    
    output "cluster_id" {
      value = azurerm_kubernetes_automatic_cluster.aks_automatic.id
    }
    
    output "node_resource_group_id" {
      value = azurerm_kubernetes_automatic_cluster.aks_automatic.node_resource_group_id
    }
    
    output "fully_qualified_domain_name" {
      value = azurerm_kubernetes_automatic_cluster.aks_automatic.fully_qualified_domain_name
    }
    

Terraform initialisieren

Führen Sie terraform init aus, um die Terraform-Bereitstellung zu initialisieren. Mit diesem Befehl werden die Azure Anbieter heruntergeladen, die zum Verwalten Ihrer Azure Ressourcen erforderlich sind.

terraform init -upgrade

Terraform-Ausführungsplan erstellen

Führen Sie terraform plan aus, um einen Ausführungsplan zu erstellen.

terraform plan -out main.tfplan

Wenden Sie einen Terraform-Ausführungsplan an

Führen Sie terraform apply aus, um den Ausführungsplan auf Ihre Cloudinfrastruktur anzuwenden.

terraform apply main.tfplan

Das Erstellen eines automatischen AKS-Clusters dauert mehrere Minuten, bis der Vorgang abgeschlossen ist.

Überprüfen des Clusters

  1. Rufen Sie den Azure Ressourcengruppennamen und den Clusternamen ab.

    resource_group_name=$(terraform output -raw resource_group_name)
    cluster_name=$(terraform output -raw cluster_name)
    
  2. Führen Sie az aks show aus, um den Cluster anzuzeigen und zu bestätigen, dass der Cluster die Automatic SKU verwendet.

    az aks show --resource-group $resource_group_name --name $cluster_name --query "{name:name, sku:sku, provisioningState:provisioningState}"
    

Herstellen einer Verbindung mit dem Cluster

Um einen Kubernetes-Cluster zu verwalten, verwenden Sie den Kubernetes-Befehlszeilenclient kubectl. kubectl ist bereits installiert, wenn Sie Azure Cloud Shell verwenden. Sie können kubectl lokal installieren, indem Sie den Befehl az aks install-cli verwenden. AKS Automatic-Cluster sind mit Microsoft Entra ID für Kubernetes rollenbasierte Zugriffskontrolle (RBAC) konfiguriert.

Hinweis

Wenn Sie einen Cluster mithilfe des Azure CLI erstellen, werden Ihrem Benutzer integrierte Rollen zugewiesen für Azure Kubernetes Service RBAC Cluster Admin.

  1. Mit dem Befehl kubectl können Sie az aks get-credentials für die Verbindungsherstellung mit Ihrem Kubernetes-Cluster konfigurieren. Mit diesem Befehl werden die Anmeldeinformationen heruntergeladen, und die Kubernetes-Befehlszeilenschnittstelle wird für deren Verwendung konfiguriert.

    az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster
    
  1. Konfigurieren Sie kubectl, um mit dem Befehl az aks get-credentials eine Verbindung mit Ihrem Kubernetes-Cluster herzustellen. Mit diesem Befehl werden die Anmeldeinformationen heruntergeladen, und die Kubernetes-Befehlszeilenschnittstelle wird für deren Verwendung konfiguriert.

    az aks get-credentials --resource-group $resource_group_name --name $cluster_name
    
  1. Überprüfen Sie die Verbindung mit dem Cluster mithilfe des Befehls kubectl get. Dieser Befehl gibt eine Liste der Clusterknoten zurück.

    kubectl get nodes
    

    Die folgende Beispielausgabe zeigt, wie Sie aufgefordert werden, sich anzumelden:

    To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
    

    Nach der Anmeldung zeigt die folgende Beispielausgabe die verwalteten Systemknotenpools an. Stellen Sie sicher, dass der Knotenstatus Bereit lautet.

    NAME                           STATUS   ROLES    AGE   VERSION
    aks-hostedpool-16652789-vms1   Ready    <none>   19m   v1.34.7
    aks-hostedpool-16652789-vms2   Ready    <none>   19m   v1.34.7
    aks-hostedpool-16652789-vms3   Ready    <none>   19m   v1.34.7
    aks-system-surge-zq4d2         Ready    <none>   19m   v1.34.7
    

Bereitstellen der Anwendung

Zum Bereitstellen der Anwendung verwenden Sie eine Manifestdatei, um alle Objekte zu erstellen, die zum Ausführen der AKS Store-Anwendung erforderlich sind. Eine Kubernetes-Manifestdatei definiert den gewünschten Zustand (Desired State) eines Clusters – also beispielsweise, welche Containerimages ausgeführt werden sollen. Das Manifest umfasst die folgenden Kubernetes-Bereitstellungen und -Dienste:

Screenshot der Azure Store-Beispielarchitektur.

  • Store Front: Webanwendung für Kunden zum Anzeigen von Produkten und Aufgeben von Bestellungen
  • Product Service: Zum Anzeigen von Produktinformationen
  • Order Service: dient der Aufgabe von Bestellungen.
  • Rabbit MQ: Nachrichtenwarteschlange für eine Auftragswarteschlange.

Hinweis

Zustandsbehaftete Container wie Rabbit MQ sollten nicht ohne permanenten Speicher für die Produktion ausgeführt werden. Diese werden hier zur Einfachheit verwendet, es wird jedoch empfohlen, verwaltete Dienste wie Azure Cosmos DB oder Azure Service Bus zu verwenden.

  1. Erstellen Sie einen Namespace aks-store-demo, in dem die Kubernetes-Ressourcen bereitgestellt werden.

    kubectl create ns aks-store-demo
    
  2. Stellen Sie die Anwendung mithilfe des kubectl apply-Befehls im aks-store-demo-Namespace bereit. Die YAML-Datei, die die Bereitstellung definiert, befindet sich auf GitHub.

    kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yaml
    

    Die folgende Beispielausgabe zeigt die Bereitstellungen und Dienste:

    statefulset.apps/rabbitmq created
    configmap/rabbitmq-enabled-plugins created
    service/rabbitmq created
    deployment.apps/order-service created
    service/order-service created
    deployment.apps/product-service created
    service/product-service created
    deployment.apps/store-front created
    service/store-front created
    ingress/store-front created
    

Testen der App

Wenn die Anwendung ausgeführt wird, macht ein Kubernetes-Dienst das Anwendungs-Front-End im Internet verfügbar. Dieser Vorgang kann einige Minuten dauern.

  1. Sehen Sie sich den Status der bereitgestellten Pods mithilfe des Befehls kubectl get pods an. Stellen Sie sicher, dass alle Pods den Status Running haben, bevor Sie fortfahren. Wenn dies der erste Workload ist, den Sie bereitstellen, kann es einige Minuten dauern, bis node auto provisioning einen Knoten-Pool erstellt hat, um die Pods auszuführen.

    kubectl get pods -n aks-store-demo
    
  2. Suchen Sie nach einer öffentlichen IP-Adresse für die Store-Front-Anwendung. Verwenden Sie zum Überwachen des Fortschritts den Befehl kubectl get service mit dem Argument --watch:

    kubectl get ingress store-front -n aks-store-demo --watch
    

    Die Ausgabe von ADDRESS für den store-front-Dienst ist anfangs leer:

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *                      80      12m
    
  3. Nachdem ADDRESS in eine tatsächliche öffentliche IP-Adresse geändert wurde, verwenden Sie CTRL-C, um die kubectl-Überwachung zu beenden.

    Die folgende Beispielausgabe zeigt eine gültige öffentliche IP-Adresse, die dem Dienst zugewiesen ist:

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *       4.255.22.196   80      12m
    
  4. Öffnen Sie einen Webbrowser mit der externen IP-Adresse Ihres Eingangs, um die Azure Store-App in Aktion zu sehen.

    Screenshot: Beispielanwendung für einen AKS-Store.

Löschen des Clusters

Wenn Sie nicht planen, das Lernprogramm AKS zu durchlaufen, bereinigen Sie unnötige Ressourcen, um Azure Gebühren zu vermeiden.

Entfernen Sie die Ressourcengruppe, den Containerdienst und alle zugehörigen Ressourcen mithilfe des Befehls az group delete.

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

Hinweis

Der AKS-Cluster wurde mit einer systemseitig zugewiesenen verwalteten Identität erstellt. Dies ist die Standardidentitätsoption, die in dieser Schnellstartanleitung verwendet wird. Die Plattform verwaltet diese Identität, sodass Sie sie nicht manuell entfernen müssen.

Wenn Sie die ressourcen, die Sie mit Terraform erstellt haben, nicht mehr benötigen, führen Sie den Terraform-Plan aus, und geben Sie die destroy Kennzeichnung an.

terraform plan -destroy -out main.destroy.tfplan

Führen Sie den Befehl terraform apply aus, um den Ausführungsplan anzuwenden.

terraform apply main.destroy.tfplan

In diesem Schnellstart haben Sie einen Kubernetes-Cluster mit AKS Automatic und anschließend eine einfache Anwendung mit mehreren Containern in diesem Cluster bereitgestellt. Diese Beispielanwendung dient nur zu Demozwecken und stellt nicht alle bewährten Methoden für Kubernetes-Anwendungen dar. Anleitungen zum Erstellen vollständiger Lösungen mit AKS für die Produktion finden Sie unter AKS-Lösungsleitfaden.

Weitere Informationen zu AKS Automatic finden Sie unter Introduction to Azure Kubernetes Service (AKS) Automatic