Freigeben über


Zugriff auf die Kubernetes-API für Flottenhubcluster

Wenn die Azure Kubernetes Fleet Manager-Ressource mit aktiviertem Hubcluster erstellt wurde, kann sie zur zentralen Steuerung von Szenarien wie der Weitergabe von Kubernetes-Ressourcen verwendet werden. In diesem Artikel erfahren Sie, wie Sie auf die Kubernetes-API des Hubclusters zugreifen, der von der Fleet-Ressource verwaltet wird.

Voraussetzungen

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

Zugriff auf die Kubernetes-API für Flottenhubcluster

  1. Legen Sie die folgenden Umgebungsvariablen für Ihre Abonnement-ID, Ressourcengruppe und Fleet-Ressource fest:

    export SUBSCRIPTION_ID=<subscription-id>
    export GROUP=<resource-group-name>
    export FLEET=<fleet-name>
    
  2. Legen Sie mit dem Befehl az account set das Azure-Abonnement fest, das standardmäßig verwendet werden soll.

    az account set --subscription ${SUBSCRIPTION_ID}
    
  3. Rufen Sie die kubeconfig-Datei des Hubclusters der Fleet-Ressource mithilfe des Befehls az fleet get-credentials ab.

    az fleet get-credentials --resource-group ${GROUP} --name ${FLEET}
    

    Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:

    Merged "hub" as current context in /home/fleet/.kube/config
    
  4. Legen Sie die folgende Umgebungsvariable für id des Hubclusters der Fleet-Ressource fest:

    export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
    
  5. Autorisieren Sie Ihre Identität mit den folgenden Befehlen für den Kubernetes-API-Server der Fleet-Ressource:

    Für die Umgebungsvariable ROLE können Sie eine der folgenden vier integrierten Rollendefinitionen als Wert verwenden:

    • RBAC-Reader von Azure Kubernetes Fleet Manager
    • RBAC-Writer von Azure Kubernetes Fleet Manager
    • RBAC-Administrator von Azure Kubernetes Fleet Manager
    • RBAC-Clusteradministrator von Azure Kubernetes Fleet Manager
    export IDENTITY=$(az ad signed-in-user show --query "id" --output tsv)
    export ROLE="Azure Kubernetes Fleet Manager RBAC Cluster Admin"
    az role assignment create --role "${ROLE}" --assignee ${IDENTITY} --scope ${FLEET_ID}
    

    Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:

    {
      "canDelegate": null,
      "condition": null,
      "conditionVersion": null,
      "description": null,
      "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/fleets/<FLEET>/providers/Microsoft.Authorization/roleAssignments/<assignment>",
      "name": "<name>",
      "principalId": "<id>",
      "principalType": "User",
      "resourceGroup": "<GROUP>",
      "roleDefinitionId": "/subscriptions/<SUBSCRIPTION_ID>/providers/Microsoft.Authorization/roleDefinitions/18ab4d3d-a1bf-4477-8ad9-8359bc988f69",
      "scope": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/fleets/<FLEET>",
      "type": "Microsoft.Authorization/roleAssignments"
    }
    
  6. Überprüfen Sie mit dem Befehl kubectl get memberclusters, ob Sie auf den API-Server zugreifen können.

    kubectl get memberclusters
    

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

    NAME           JOINED   AGE
    aks-member-1   True     2m
    aks-member-2   True     2m
    aks-member-3   True     2m
    

Nächste Schritte