Freigeben über


Verwenden des Azure Kubernetes-Diensts im Azure Stack Hub mit der CLI

Dieser Artikel ist ein Leitfaden für die ersten Schritte mit dem Azure Kubernetes Service (AKS)-Dienst auf Azure Stack Hub. Es beschreibt die wichtigsten Szenarien, um Sie mit AKS im Azure Stack Hub vertraut zu machen. Die in Azure Stack Hub verfügbare Funktionalität ist eine Teilmenge der in globalen Azure verfügbaren Funktionen.

In den folgenden Abschnitten:

  1. Füllen Sie die Voraussetzungen für die Verwendung von AKS im Azure Stack Hub aus.

  2. Führen Sie die Lebenszyklusvorgänge eines AKS-Clusters mit Azure CLI und dem Azure Stack Hub-Benutzerportal aus.

Installieren der Azure-Befehlszeilenschnittstelle

Sie müssen die Azure CLI mit AKS-Unterstützung für Ihren Computer installieren. Bereiten Sie einen sauberen Linux- oder Windows-Computer vor, um die Vorschauversion der Azure CLI mit AKS-Unterstützung zu installieren. Stellen Sie sicher, dass auf dem Computer keine Azure CLI installiert ist, um Konflikte mit der Vorschau von Azure CLI zu vermeiden, die Sie als Nächstes installieren. In den meisten der folgenden Anweisungen wird davon ausgegangen, dass Sie eine Linux-VM verwenden, aber Sie finden die entsprechenden Schritte in Windows in der Produktdokumentation.

Führen Sie kein Upgrade der Azure CLI durch, nachdem Sie die Azure CLI mit AKS-Unterstützung installiert haben. Wenn Sie ein Upgrade durchführen, wird es durch die produktionsbereite Version ersetzt, die keine AKS-Unterstützung aufweist.

Folgen Sie für einen Ubuntu-Computer den Anweisungen unter Installieren der Azure CLI unter Linux.

Überprüfen Sie nach der Installation von Azure CLI mit AKS-Unterstützung, ob die Installation korrekt ist, indem Sie den folgenden Azure CLI-Befehl ausführen:

    az --version

Hier ist eine Beispielausgabe von einem Linux-Computer:

Ausgabe von einem Linux-Computer

Azure CLI sollte 2.28.0 oder höher sein.

Herstellen einer Verbindung mit Azure Stack Hub

  1. Stellen Sie eine Verbindung mit Ihrem Azure Stack Hub-Endpunkt her. Sie müssen Azure CLI verwenden, um die spezifische Azure Stack Hub-Umgebung einzurichten, mit der Sie eine Verbindung herstellen. Die Anweisungen finden Sie unter "Herstellen einer Verbindung mit Azure Stack Hub".

  2. Registrieren Sie Ihre Umgebung, damit Azure CLI eine Verbindung mit dem Azure Stack Hub Resource Manager-Endpunkt für Ihre Instanz herstellen kann. Aktualisieren Sie die URLs im folgenden Codeausschnitt, und führen Sie den folgenden Befehl aus:

    az cloud register \
        -n aks-preview-test \
        --endpoint-resource-manager "https://management.redmond.xbx.nxn.microsoft.com" \
        --suffix-storage-endpoint "redmond.xbx.nxn.microsoft.com" \
        --suffix-keyvault-dns ".vault.redmond.xbx.nxn.microsoft.com"
    
  3. Legen Sie die aktive Umgebung fest.

    az cloud set -n aks-preview-test
    
  4. Aktualisieren Sie die Umgebungskonfiguration.

    az cloud update --profile 2020-09-01-hybrid
    
  5. Stellen Sie eine Verbindung mit der Umgebung her.

    az login -u 'user@contoso.onmicrosoft.com' -p 'xxxxxxx' --tenant 'contoso.onmicrosoft.com'
    

    Hinweis

    Wenn Sie einen Fehler bei der Zertifikatüberprüfung auslösen, kann es sein, dass das für den Azure Resource Manager-Endpunkt verwendete Zertifikat von Ihrem Clientcomputer nicht als vertrauenswürdig eingestuft wird. In diesem Fall müssen Sie das zertifikat exportieren, das in den Azure Stack Hub-Endpunkten verwendet wird, und es vertrauen. Anweisungen finden Sie unter Exportieren des Azure Stack Hub CA-Stammzertifikats.

    Insbesondere für Linux-Computer siehe: Microsoft Entra ID unter Linux

  6. Verwenden Sie den folgenden Befehl, um das Abonnement in Ihrer Azure CLI-Sitzung als Standard festzulegen:

    az account set --subscription <subscription-id>
    
  7. Registrieren Sie den Azure Kubernetes Service-Ressourcenanbieter. Listet die verfügbaren Ressourcenanbieter in Ihrem Abonnement auf.

    az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
    

    Die Ausgabe sollte wie folgt aussehen:

    Die Ausgabe sollte wie folgt aussehen:

  8. Notieren Sie sich den Microsoft.ContainerService-Ressourcenanbieter , und registrieren Sie dann den Anbieter:

    az provider register --namespace Microsoft.ContainerService
    
  9. Führen Sie Schritt 7 erneut aus, um den Registrierungsstatus des Ressourcenanbieters zu überprüfen. Die Registrierung kann mehrere Minuten dauern.

Sobald diese erforderlichen Schritte abgeschlossen sind, können Sie die folgenden Szenarien testen.

Erstellen eines AKS-Clusters

Die globalen Azure-Anweisungen finden Sie unter Deploy an Azure Kubernetes Service cluster using the Azure CLI. Die hier beschriebenen Anweisungen spiegeln die Einschränkungen der Verwendung von AKS im Azure Stack Hub wider. Sie können die Azure CLI verwenden, um einen AKS-Cluster für Linux- oder Windows-Container zu erstellen.

  1. Erstellen Sie eine Ressourcengruppe:

    az group create --name myResourceGroup --location <Azure Stack Hub location>
    
  2. Stellen Sie sicher, dass Sie über eine Dienstprinzipal-ID mit der Berechtigung „Mitwirkender“ für Ihr Abonnement verfügen, um Cluster in diesem Abonnement zu erstellen.

    1. Führen Sie die folgenden Anweisungen aus, um einen Dienstprinzipal (Service Principal, SPN) mithilfe der Microsoft Entra-ID zu erstellen.
    2. Gehen Sie gemäß diesen Anweisungen vor, um einen SPN mit Active Directory-Verbunddiensten (AD FS) zu erstellen.
    3. Für die Zuweisung der Rolle „Mitwirkender“ zum SPN finden Sie unter diesen Anweisungen. Stellen Sie sicher, dass Sie die Rolle "Mitwirkender" auswählen.
  3. Erstellen Sie einen AKS-Cluster mit drei Agentknoten. Stellen Sie Werte für die folgenden Parameter bereit. Beispiele werden bereitgestellt. Laufen:

    az aks create \
    --resource-group myResourceGroup \
    --name myakscluster \
    --dns-name-prefix myakscluster \
    --nodepool-name mynodepool \
    --admin-username azureuser \
    --service-principal xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --node-count 3 \
    --generate-ssh-keys \
    --load-balancer-sku basic \
    --vm-set-type VirtualMachineScaleSets \
    --location <Azure Stack Hub location> \
    --kubernetes-version 1.20.7
    

    Die Ausgabe dieses Vorgangs befindet sich im JSON-Format und enthält eine Spezifikation des Clusters, einschließlich des generierten öffentlichen SSH-Schlüssels, vollqualifizierter Domänenname (Fully Qualified Domain Name, FQDN), der im Cluster unter anderen Eigenschaften verwendet wird. Beachten Sie, dass der Befehl Text wie folgt ausgibt, wodurch der Speicherort des privaten Schlüssels hervorgehoben wird: SSH key files '/home/azureuser/.ssh/id_rsa' und '/home/azureuser/.ssh/id_rsa.pub' werden unter \~/.ssh generiert, um SSH-Zugriff auf die VM zu ermöglichen. Speichern Sie diese Schlüssel an einem sicheren Speicherort, um darauf zuzugreifen, falls es erforderlich ist, per SSH auf die virtuellen Maschinen zuzugreifen, wie es bei der Fehlerbehebung der Fall ist.

  4. Jetzt können Sie die Tests für Scale wiederholen, eine App bereitstellen und löschen.

Herstellen einer Verbindung mit dem Cluster

  1. Verwenden Sie zum Verwalten eines Kubernetes-Clusters den Kubernetes-Befehlszeilenclient kubectl. Um kubectl lokal zu installieren, verwenden Sie den az aks install-cli Befehl (möglicherweise müssen Sie "sudo" am Anfang verwenden, um die Berechtigung zum Installieren zu haben):

    az aks install-cli
    
  2. Verwenden Sie den Befehl, um az aks get-credentials für die Verbindung mit Ihrem Kubernetes-Cluster zu 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 myakscluster --admin
    
  3. Um die Verbindung mit Ihrem Cluster zu überprüfen, verwenden Sie den Befehl "kubectl get", um eine Liste der Clusterknoten zurückzugeben.

    kubectl get nodes
    

    Überprüfen der Verbindung mit Ihrem Cluster

Skalieren von Clustern

Eine weitere Clusterverwaltungsaufgabe ist die Skalierung eines Clusters. Sie können einen Cluster jederzeit skalieren, nachdem er mithilfe des az aks scale Befehls erstellt wurde. Führen Sie Folgendes aus, um den Cluster von den ersten drei Knoten auf 4 zu skalieren:

    az aks scale --resource-group myResourceGroup --name myakscluster --node-count 4

Wenn der Cluster erfolgreich skaliert wird, enthält die Ausgabe ein "agentPoolProfiles" ähnlich dem folgenden Beispiel:

    "agentPoolProfiles": [
        {
        "availabilityZones": null,
        "count": 4,
        "enableAutoScaling": null,
        "enableNodePublicIp": false,
        "maxCount": null,
        "maxPods": 110,
        "minCount": null,
        "mode": "System",
        "name": "mynodepool",
        "nodeLabels": {},
        "nodeTaints": null,
        "orchestratorVersion": "1.20.7",
        "osDiskSizeGb": 100,
        "osType": "Linux",
        "provisioningState": "Succeeded",
        "scaleSetEvictionPolicy": null,
        "scaleSetPriority": null,
        "spotMaxPrice": null,
        "tags": null,
        "type": "VirtualMachineScaleSets",
        "vmSize": " Standard_DS2_v2",
        "vnetSubnetId": null
        }
    ]

Cluster löschen

Nachdem die vorherigen Vorgänge ausgeführt wurden, können Sie den Cluster löschen. Laufen:

az aks delete --name myakscluster --resource-group myResourceGroup

Erstellen eines AKS-Clusters mit benutzerdefiniertem virtuellen Netzwerk

Das Erstellen eines Clusters, der in einem vom Benutzer bereitgestellten Netzwerk bereitgestellt wird, ist ein gängiges Szenario. Die Planung der Netzwerkkonfiguration erfordert eine gewisse Vorbereitung. Beachten Sie außerdem, dass bei AKS das standardmäßige Netzwerk-Plug-In Azure CNI ist, nicht Kubenet wie bei AKS Engine.

Mit Azure CNI erhält jeder Pod eine IP-Adresse aus dem Subnetz und kann direkt aufgerufen werden (ohne dass eine Routingtabelle erforderlich ist, wie bei Kubenet). Diese IP-Adressen müssen in Ihrem Netzwerkraum eindeutig sein und müssen geplant werden.

Der folgende Artikel führt Sie durch den Prozess der Planung ihrer benutzerdefinierten Bereitstellung virtueller Netzwerke. Sie finden verschiedene Netzwerkkonfigurationen, die für Ihre Anforderungen geeignet sind, und testen Sie sie. Für einen ersten Test zeigen Ihnen die folgenden beiden Schritte den grundlegenden Prozess:

  1. Befolgen Sie die Anweisungen in diesem Artikel , um die Bereitstellung mit Azure CNI zu planen. Sie können beispielsweise das Portal verwenden, um ein virtuelles Netzwerk namens "myAKSVnet" mit IP-Bereich 10.0.0.0/8 mit Subnetz "myAKSSubnet" und IP-Bereich 10.240.0.0/16 in einer Ressourcengruppe mit dem Namen "myTest-rg" zu erstellen. Verwenden Sie dann den nächsten Schritt für die Erstellung des Clusters.

    az network vnet create \
        --resource-group myTest-rg \
        --name myAKSVnet \
        --address-prefixes 10.0.0.0/8 \
        --subnet-name myAKSSubnet \
        --subnet-prefix 10.240.0.0/16    
    
  2. Beachten Sie, dass der im Azure-Artikel bereitgestellte Clusterbefehl beim Bereitstellen in Azure einwandfrei funktioniert, um sie in Azure Stack Hub bereitzustellen, müssen Sie zusätzliche Parameter wie im folgenden Beispiel angeben. Die ID für das virtuelle Netzwerk-Subnetz sollte wie '/subscriptions/dfdfdff-5dfdf-dfdf-dfdf-dfdfdfdfdfd/resourceGroups/myTest-rg/providers/Microsoft.Network/virtualNetworks/myAKSVnet/subnets/myAKSSubnet' aussehen:

    az aks create  \ 
    --resource-group myTest-rg \
    --name aksvnet \
    --dns-name-prefix  aksvnet \
    --nodepool-name mynodepool \
    --admin-username azureuser \
    --service-principal xvxvxvxvx-ffff-ffff-xvxvxvx-8xbxbxbx8  \
    --client-secret dccbcbcbcbcbcbcbcbbcbcbcbcbcbcbc-LNX \
    --node-count 3 \
    --generate-ssh-keys \
    --load-balancer-sku basic \
    --vm-set-type VirtualMachineScaleSets \
    --network-plugin azure \
    --vnet-subnet-id '<subnet-resource-id>' \
    --skip-subnet-role-assignment \
    --docker-bridge-address 172.17.0.1/16 \
    --dns-service-ip 10.0.0.10 \
    --location redmond
    
  3. Folgen Sie den Anweisungen im Abschnitt "Herstellen einer Verbindung mit dem Cluster", um eine Verbindung mit dem Kubernetes-Cluster herzustellen und Ihre Anwendungen bereitzustellen.

Konsistenzprüfung

Konsistenzüberprüfung zwischen Azure und Azure Stack Hub

  1. Wählen Sie eine Kombination von Befehlen aus den oben getesteten Befehlen aus dem Abschnitt "Befehlsreferenz" oder aus Ihren eigenen täglichen Skripts aus.

  2. Wenden Sie sie auf Azure und höher auf Azure Stack Hub an. Beachten Sie alle Abweichungen, die nicht erwartet werden, und geben Sie Feedback.

Nächste Schritte