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.

  • Lesen Sie die konzeptionelle Übersicht über Flottentypen, die einen Vergleich verschiedener Flottenkonfigurationsoptionen bietet.

  • 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. Wenn sie mit der Azure CLI erstellt wird, ermöglicht diese Ressource standardmäßig 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. Weitere Informationen finden Sie in der konzeptionellen Übersicht über Flottentypen, die einen Vergleich verschiedener Flottenkonfigurationen bietet.

Wichtig

Sobald eine Kubernetes Fleet-Ressource erstellt wurde, ist es möglich, eine Kubernetes-Fleet-Ressource ohne Hub-Cluster auf eine Ressource mit Hub-Cluster zu aktualisieren. Bei Kubernetes Fleet-Ressourcen mit einem Hub-Cluster kann die einmal getroffene Auswahl von privat oder öffentlich nicht mehr geändert werden.

Wenn Sie Fleet nur für das Szenario der Update-Orchestrierung verwenden möchten, welches das Standardszenario beim Erstellen einer neuen Fleet-Ressource über die Azure CLI ist, können Sie mit dem Befehl az fleet create eine Fleet-Ressource ohne den Hubcluster erstellen.

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"
}

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, ob 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