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.
- Sie müssen über eine Fleet-Ressource mit einem Hubcluster und Mitgliedsclustern verfügen. Wenn Sie keins haben, lesen Sie Erstellen einer Azure Kubernetes Fleet Manager-Ressource und Einbinden von Mitgliedsclustern mithilfe der Azure CLI.
- Die Identität (Benutzer oder Dienstprinzipal), die Sie verwenden, muss über die Berechtigung „Microsoft.ContainerService/fleets/listCredentials/action“ für die Fleet-Ressource verfügen.
Zugriff auf die Kubernetes-API für Flottenhubcluster
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>
Legen Sie mit dem Befehl
az account set
das Azure-Abonnement fest, das standardmäßig verwendet werden soll.az account set --subscription ${SUBSCRIPTION_ID}
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
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}
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" }
Ü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
Azure Kubernetes Service