Schnellstart: Erstellen einer Azure Kubernetes Fleet Manager-Ressource und Einbinden von Mitgliedsclustern mithilfe der Azure CLI

Erste Schritte mit Azure Kubernetes Fleet Manager (Fleet) unter Verwendung der Azure CLI zum Erstellen einer Fleet-Ressource sowie zum späteren Verbinden von AKS-Clustern (Azure Kubernetes Service) als Mitgliedsclustern.

Voraussetzungen

Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.

  • Lesen Sie die konzeptionelle Übersicht über dieses Feature mit Erläuterungen von Flotten und Mitgliedsclustern, auf die in diesem Dokument verwiesen wird.

  • Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.

  • Eine Identität (Benutzer oder Dienstprinzipal), die verwendet werden kann, um sich bei Azure CLI anzumelden. Diese Identität muss über die folgenden Berechtigungen für die Fleet- und AKS-Ressourcentypen verfügen, um die in dieser Schnellstartanleitung aufgeführten Schritte ausführen zu können:

    • Microsoft.ContainerService/fleets/read
    • Microsoft.ContainerService/fleets/write
    • Microsoft.ContainerService/fleets/members/read
    • Microsoft.ContainerService/fleets/members/write
    • Microsoft.ContainerService/fleetMemberships/read
    • Microsoft.ContainerService/fleetMemberships/write
    • Microsoft.ContainerService/managedClusters/read
    • Microsoft.ContainerService/managedClusters/write
  • Installieren oder aktualisieren Sie die Azure CLI auf Version 2.53.1 oder höher.

  • Installieren Sie die Azure CLI-Erweiterung fleet mit dem Befehl az extension add, und stellen Sie sicher, dass Ihre Version mindestens 1.0.0 ist.

    az extension add --name fleet
    
  • Legen Sie die folgenden Umgebungsvariablen fest:

    export SUBSCRIPTION_ID=<subscription_id>
    export GROUP=<your_resource_group_name>
    export FLEET=<your_fleet_name>
    
  • Installieren Sie kubectl und kubelogin mit dem Befehl az aks install-cli.

    az aks install-cli
    
  • Die AKS-Cluster, die Sie als Mitgliedscluster in die Fleet-Ressource einbinden möchten, müssen sich in den unterstützten Versionen von AKS befinden. Hier erfahren Sie mehr über die Richtlinie für die Unterstützung von AKS-Versionen.

Erstellen einer Ressourcengruppe

Eine Azure-Ressourcengruppe ist eine logische Gruppe, in der Azure-Ressourcen bereitgestellt und verwaltet werden. Wenn Sie eine Ressourcengruppe erstellen, werden Sie zur Angabe eines Speicherorts aufgefordert. An diesem Speicherort werden die Metadaten Ihrer Ressourcengruppe gespeichert. Darüber hinaus werden dort die Ressourcen in Azure ausgeführt, wenn Sie während der Ressourcenerstellung keinen anderen Ort angeben.

Legen Sie das Azure-Abonnement fest, und erstellen Sie eine Ressourcengruppe mit dem Befehl az group create.

az account set -s ${SUBSCRIPTION_ID}
az group create --name ${GROUP} --location eastus

Das folgende Ausgabebeispiel ähnelt der erfolgreichen Erstellung der Ressourcengruppe:

{
  "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo",
  "location": "eastus",
  "managedBy": null,
  "name": "fleet-demo",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

Erstellen einer Fleet-Ressource

Sie können eine Fleet-Ressource erstellen, um Ihre AKS-Cluster später als Mitgliedscluster zu gruppieren. Standardmäßig ermöglicht diese Ressource die Gruppierung von Mitgliedsclustern und die Update-Orchestrierung. Wenn der Fleet-Hub aktiviert ist, werden zusätzliche Previewfunktionen aktiviert, wie die Weitergabe von Kubernetes-Objekten an Mitgliedscluster und der L4-Lastenausgleich über mehrere Mitgliedscluster.

Wichtig

Sobald eine Fleet-Ressource erstellt wurde, ist es derzeit nicht möglich, den Hubmodus für die Fleet-Ressource zu ändern.

Option 1 – Erstellen einer Fleet-Ressource ohne Hubcluster

Wenn Sie Fleet nur für das Szenario der Update-Orchestrierung verwenden möchten, welches das Standardszenario beim Erstellen einer neuen Fleet-Ressource ist, können Sie mit dem Befehl az fleet create eine Fleet-Ressource ohne den Hubcluster erstellen. Weitere Informationen finden Sie unter Was ist ein Hubcluster (Preview)?.

az fleet create --resource-group ${GROUP} --name ${FLEET} --location eastus

Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:

{
  "etag": "...",
  "hubProfile": null,
  "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo/providers/Microsoft.ContainerService/fleets/fleet-demo",
  "identity": {
    "principalId": null,
    "tenantId": null,
    "type": "None",
    "userAssignedIdentities": null
  },
  "location": "eastus",
  "name": "fleet-demo",
  "provisioningState": "Succeeded",
  "resourceGroup": "fleet-demo",
  "systemData": {
    "createdAt": "2023-11-03T17:15:19.610149+00:00",
    "createdBy": "<user>",
    "createdByType": "User",
    "lastModifiedAt": "2023-11-03T17:15:19.610149+00:00",
    "lastModifiedBy": "<user>",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.ContainerService/fleets"
}

Option 2 – Erstellen einer Fleet-Ressource mit einem Hubcluster

Wenn Sie Fleet für die Weitergabe von Kubernetes-Objekten und den Multicluster-Lastausgleich zusätzlich zur Update-Orchestrierung verwenden möchten, müssen Sie die Fleet-Ressource mit aktiviertem Hubcluster erstellen, indem Sie den Parameter --enable-hub mit dem Befehl az fleet create angeben.

az fleet create --resource-group ${GROUP} --name ${FLEET} --location eastus --enable-hub

Ihre Ausgabe sollte in etwa der Beispielausgabe im vorherigen Abschnitt entsprechen.

Einbinden von Mitgliedsclustern

Fleet unterstützt derzeit das Einbinden vorhandener AKS-Cluster als Mitgliedscluster.

  1. Legen Sie die folgenden Umgebungsvariablen für Mitgliedscluster fest:

    export MEMBER_NAME_1=aks-member-1
    export MEMBER_CLUSTER_ID_1=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/managedClusters/${MEMBER_NAME_1}
    
  2. Binden Sie Ihre vorhandenen AKS-Cluster mit dem Befehl az fleet member create in die Fleet-Ressource ein.

    # Join the first member cluster
    az fleet member create --resource-group ${GROUP} --fleet-name ${FLEET} --name ${MEMBER_NAME_1} --member-cluster-id ${MEMBER_CLUSTER_ID_1}
    

    Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:

    {
      "clusterResourceId": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-x",
      "etag": "...",
      "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/fleets/<FLEET>/members/aks-member-x",
      "name": "aks-member-1",
      "provisioningState": "Succeeded",
      "resourceGroup": "<GROUP>",
      "systemData": {
        "createdAt": "2022-10-04T19:04:56.455813+00:00",
        "createdBy": "<user>",
        "createdByType": "User",
        "lastModifiedAt": "2022-10-04T19:04:56.455813+00:00",
        "lastModifiedBy": "<user>",
        "lastModifiedByType": "User"
      },
      "type": "Microsoft.ContainerService/fleets/members"
    }
    
  3. Überprüfen Sie mit dem Befehl az fleet member list, dass die Mitgliedscluster erfolgreich in die Fleet-Ressource eingebunden wurden.

    az fleet member list --resource-group ${GROUP} --fleet-name ${FLEET} -o table
    

    War der Vorgang erfolgreich, sollte Ihre Ausgabe in etwa dem folgenden Beispiel entsprechen:

    ClusterResourceId                                                                                                                                Name          ProvisioningState    ResourceGroup
    -----------------------------------------------------------------------------------------------------------------------------------------------  ------------  -------------------  ---------------
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-1  aks-member-1  Succeeded            <GROUP>
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-2  aks-member-2  Succeeded            <GROUP>
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-3  aks-member-3  Succeeded            <GROUP>
    

Nächste Schritte