Uzyskiwanie dostępu do interfejsu API kubernetes dla klastra koncentratora usługi Azure Kubernetes Fleet Manager
Jeśli zasób usługi Azure Kubernetes Fleet Manager (Kubernetes Fleet) został utworzony za pomocą klastra koncentratora, możesz użyć go do centralnego sterowania scenariuszami, takimi jak propagacja zasobów Kubernetes. Z tego artykułu dowiesz się, jak uzyskać dostęp do interfejsu API Kubernetes dla klastra koncentratora Kubernetes Fleet.
Wymagania wstępne
- Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
- Potrzebny jest zasób Rozwiązania Kubernetes Fleet z klastrem koncentratora i klastrami członkowskimi. Jeśli go nie masz, zobacz Create an Azure Kubernetes Fleet Manager resource and join member clusters by using the Azure CLI (Tworzenie zasobu usługi Azure Kubernetes Fleet Manager i dołączanie do klastrów członkowskich przy użyciu interfejsu wiersza polecenia platformy Azure).
- Tożsamość (użytkownik lub jednostka usługi), której używasz, musi mieć uprawnienia Microsoft.ContainerService/fleets/listCredentials/action zasobu Floty Kubernetes.
Uzyskiwanie dostępu do interfejsu API platformy Kubernetes
Ustaw następujące zmienne środowiskowe dla zasobu subscription ID, resource group i Kubernetes Fleet:
export SUBSCRIPTION_ID=<subscription-id> export GROUP=<resource-group-name> export FLEET=<fleet-name>
Ustaw domyślną subskrypcję platformy Azure przy użyciu
az account set
polecenia :az account set --subscription ${SUBSCRIPTION_ID}
Pobierz plik kubeconfig klastra koncentratora Kubernetes Fleet przy użyciu
az fleet get-credentials
polecenia :az fleet get-credentials --resource-group ${GROUP} --name ${FLEET}
Dane wyjściowe powinny wyglądać mniej więcej tak jak w tym przykładzie:
Merged "hub" as current context in /home/fleet/.kube/config
Ustaw następującą zmienną środowiskową dla
FLEET_ID
wartości zasobu Kubernetes Fleet klastra koncentratora:export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
Autoryzuj swoją tożsamość, aby uzyskać dostęp do klastra usługi Kubernetes Fleet Hub przy użyciu następujących poleceń.
Dla zmiennej środowiskowej
ROLE
można użyć jednej z następujących czterech wbudowanych definicji ról jako wartości:- Czytelnik kontroli dostępu opartej na rolach w usłudze Azure Kubernetes Fleet Manager
- Moduł zapisywania kontroli dostępu opartej na rolach w usłudze Azure Kubernetes Fleet Manager
- Administrator kontroli dostępu opartej na rolach w usłudze Azure Kubernetes Fleet Manager
- Administrator klastra RBAC usługi 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}
Dane wyjściowe powinny wyglądać mniej więcej tak jak w tym przykładzie:
{ "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" }
Sprawdź, czy możesz uzyskać dostęp do serwera interfejsu
kubectl get memberclusters
API przy użyciu polecenia :kubectl get memberclusters
Jeśli polecenie zakończy się pomyślnie, dane wyjściowe powinny wyglądać podobnie do poniższego przykładu:
NAME JOINED AGE aks-member-1 True 2m aks-member-2 True 2m aks-member-3 True 2m
Powiązana zawartość
Azure Kubernetes Service