Guida introduttiva: Accedere all'API Kubernetes della risorsa Fleet
Se la risorsa di Azure Kubernetes Fleet Manager è stata creata con il cluster hub abilitato, può essere usata per controllare in modo centralizzato scenari come la propagazione delle risorse Kubernetes. Questo articolo illustra come accedere all'API Kubernetes del cluster hub gestito dalla risorsa Fleet.
Prerequisiti
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
- È necessaria una risorsa Fleet con un cluster hub e cluster membri. Se non è disponibile, vedere Creare una risorsa di Gestione flotta Kubernetes di Azure e aggiungere cluster membri usando l'interfaccia della riga di comando (CLI) di Azure.
- L'identità (utente o entità servizio) usata deve avere l'azione Microsoft.ContainerService/fleets/listCredentials/action sulla risorsa Fleet.
Accedere all'API Kubernetes del cluster di risorse Flotta
Impostare le variabili di ambiente seguenti per l'ID sottoscrizione, il gruppo di risorse e la risorsa Fleet:
export SUBSCRIPTION_ID=<subscription-id> export GROUP=<resource-group-name> export FLEET=<fleet-name>
Impostare la sottoscrizione di Azure predefinita da usare usando il
az account set
comando .az account set --subscription ${SUBSCRIPTION_ID}
Ottenere il file kubeconfig della risorsa Fleet del cluster hub usando il
az fleet get-credentials
comando .az fleet get-credentials --resource-group ${GROUP} --name ${FLEET}
L'output dovrebbe essere simile all'esempio di output seguente:
Merged "hub" as current context in /home/fleet/.kube/config
Impostare la variabile di ambiente seguente per la
id
risorsa Fleet del cluster hub:export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
Autorizzare l'identità al server API Kubernetes della risorsa del cluster hub usando i comandi seguenti:
Per la
ROLE
variabile di ambiente, è possibile usare una delle quattro definizioni di ruolo predefinite seguenti come valore:- Reader di Controllo degli accessi in base al ruolo di Gestione flotta Kubernetes di Azure
- Writer di Controllo degli accessi in base al ruolo di Gestione flotta Kubernetes di Azure
- Admin di Controllo degli accessi in base al ruolo di Gestione flotta Kubernetes di Azure
- Admin del cluster di Controllo degli accessi in base al ruolo di Gestione flotta Kubernetes di Azure
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}
L'output dovrebbe essere simile all'esempio di output seguente:
{ "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" }
Verificare di poter accedere al server API usando il
kubectl get memberclusters
comando .kubectl get memberclusters
Se funziona, l'output dovrebbe essere simile all'output di esempio seguente:
NAME JOINED AGE aks-member-1 True 2m aks-member-2 True 2m aks-member-3 True 2m
Passaggi successivi
Azure Kubernetes Service