Zuweisen von Kapazitätsreservierungsgruppen zu Azure Kubernetes Service (AKS)-Knotenpools

Da sich Ihre Workloadanforderungen ändern, können Sie vorhandene Kapazitätsreservierungsgruppen (CRGs) Ihren Azure Kubernetes Service (AKS)-Knotenpools zuordnen, um ihnen die zugewiesene Kapazität zu garantieren. Mithilfe von Kapazitätsreservierungsgruppen können Sie die Computekapazität in einer Azure-Region oder -Verfügbarkeitszone für eine beliebige Dauer reservieren. Dieses Feature ist nützlich für Workloads, die eine garantierte Kapazität erfordern, z. B. solche mit vorhersagbaren Datenverkehrsmustern oder denen, die bestimmte Leistungsanforderungen erfüllen müssen.

In diesem Artikel erfahren Sie, wie Sie Kapazitätsreservierungsgruppen mit Knotenpools in AKS verwenden.

Hinweis

Beim Löschen eines Knotenpools wird die Zuordnung dieses Knotenpools zu einer zugeordneten Kapazitätsreservierungsgruppe implizit aufgehoben, bevor der Knotenpool gelöscht wird. Beim Löschen eines Clusters wird die Zuordnung aller Knotenpools in diesem Cluster zu den zugehörigen Kapazitätsreservierungsgruppen implizit aufgehoben.

Voraussetzungen für die Verwendung von Kapazitätsreservierungsgruppen mit AKS-Knotenpools

  • Sie benötigen die Azure CLI-Version 2.56 oder höher installiert und konfiguriert. Führen Sie az --version aus, um die Version zu ermitteln. Wenn Sie eine Installation oder ein Upgrade durchführen müssen, finden Sie weitere Informationen unter Azure CLI installieren.
  • Sie benötigen eine vorhandene Kapazitätsreservierungsgruppe mit mindestens einer Kapazitätsreservierung. Andernfalls wird der Knotenpool dem Cluster mit einer Warnung hinzugefügt, und es wird keine Kapazitätsreservierungsgruppe damit verknüpft.
  • Sie müssen eine vom Benutzer zugewiesene verwaltete Identität mit der Rolle für die Ressourcengruppe erstellen, die die Kapazitätsreservierungsgruppe enthält, und die Identität Ihrem AKS-Cluster zuweisen. Vom System zugewiesene verwaltete Identitäten funktionieren für dieses Feature nicht.

Erstellen Sie eine vom Benutzer zugewiesene verwaltete Identität und weisen Sie sie einem AKS-Cluster zu.

  1. Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität mit dem Befehl az identity create.

    az identity create --name <identity-name> --resource-group <resource-group-name> --location <location>
    
  2. Rufen Sie die ID der vom Benutzer zugewiesenen verwalteten Identität mithilfe des az identity show Befehls ab, und legen Sie sie auf eine Umgebungsvariable fest.

    IDENTITY_ID=$(az identity show --name <identity-name> --resource-group <resource-group-name> --query identity.id -o tsv)
    
  3. Weisen Sie die Contributor Rolle der vom Benutzer zugewiesenen Identität mithilfe des az role assignment create Befehls zu.

    az role assignment create --assignee $IDENTITY_ID --role "Contributor" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>
    

    Es kann bis zu 60 Minuten dauern, bis die Rollenzuweisung verteilt wird.

  4. Weisen Sie die vom Benutzer zugewiesene verwaltete Identität einem neuen oder vorhandenen AKS-Cluster mithilfe des --assign-identity-Flags und dem az aks create- oder az aks update-Befehl zu.

    # Create a new AKS cluster with the user-assigned managed identity
    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> --node-count <node-count> \
        --assign-identity $IDENTITY_ID \
        --generate-ssh-keys
    
    # Update an existing AKS cluster to use the user-assigned managed identity
    az aks update \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> \
        --node-count <node-count> \
        --enable-managed-identity \
        --assign-identity $IDENTITY_ID         
    

Abrufen der ID einer vorhandenen Kapazitätsreservierungsgruppe

Rufen Sie die ID einer vorhandenen Kapazitätsreservierungsgruppe mithilfe des az capacity reservation group show Befehls ab, und legen Sie sie auf eine Umgebungsvariable fest.

CRG_ID=$(az capacity reservation group show --capacity-reservation-group <crg-name> --resource-group <resource-group-name> --query id -o tsv)

Zuordnen einer vorhandenen Kapazitätsreservierungsgruppe zu einem neuen Knotenpool

Ordnen Sie eine vorhandene Kapazitätsreservierungsgruppe einem neuen Knotenpool zu, indem Sie den az aks nodepool add Befehl mit der --crg-id Kennzeichnung verwenden. Im folgenden Beispiel wird davon ausgegangen, dass Sie eine CRG mit dem Namen „myCRG“ haben.

az aks nodepool add --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --crg-id $CRG_ID

Zuordnen einer vorhandenen Kapazitätsreservierungsgruppe zu einem vorhandenen Knotenpool (Vorschau)

Ordnen Sie eine vorhandene Kapazitätsreservierungsgruppe einem vorhandenen Knotenpool zu, indem Sie den az aks nodepool update Befehl mit dem --crg-id Flag verwenden.

  • Bei Zonalknotenpools initiiert dieser Vorgang eine rollierende Aktualisierung des Zielknotenpools. Das Update umfasst ein schrittweises Cordon und Drain aller Knoten, gefolgt von einem Neustart, damit die Änderung übernommen wird.
  • Bei nicht zonalen (regionalen) Knotenpools während der Vorschau skalieren Sie zuerst den Knotenpool auf Null, und wenden Sie dann die Kapazitätsreservierungsgruppe an.

Prerequisites

  • Installieren Sie die aks-preview Azure CLI Erweiterungsversion 20.0.0b7 oder höher, bevor Sie diesen Befehl ausführen.

  • Stellen Sie sicher, dass die Kapazitätsreservierungsgruppe über genügend Kapazität für die Upgradestrategie Ihres Knotenpools verfügt. Wenn maxSurge > 0, reservieren Sie zusätzliche Kapazität für den maximalen Anstiegswert . Beispielsweise kann ein Pool mit 10 Knoten, wenn maxSurge auf 2 festgelegt ist, während eines Upgrades mit bis zu 12 Knoten betrieben werden. Diese zusätzliche Kapazität ist nur für Rollouts mit maxUnavailable oder für regional auf null skalierte Pfade nicht erforderlich.

    az aks nodepool update --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --crg-id $CRG_ID
    

Zuordnen einer vorhandenen Kapazitätsreservierungsgruppe zu einem Systemknotenpool

Um eine vorhandene Kapazitätsreservierungsgruppe einem Systemknotenpool zuzuordnen, müssen Sie die vom Benutzer zugewiesene verwaltete Identität mit der Contributor Rolle während der Clustererstellung dem Cluster zuweisen. Anschließend können Sie das --crg-id Kennzeichen verwenden, um die Kapazitätsreservierungsgruppe dem Systemknotenpool zuzuordnen.

  • Erstellen Sie einen neuen AKS-Cluster mit der vom Benutzer zugewiesenen verwalteten Identität und ordnen Sie ihn der Kapazitätsreservierungsgruppe zu, indem Sie die Flags --assign-identity und --crg-id mit dem Befehl az aks create verwenden.

    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> --node-count <node-count> \
        --assign-identity $IDENTITY_ID \
        --crg-id $CRG_ID \
        --generate-ssh-keys
    

Nächste Schritte: Verwalten von Knotenpools in AKS

Weitere Informationen zum Verwalten von Knotenpools in AKS finden Sie unter "Verwalten von Knotenpools in Azure Kubernetes Service (AKS)".