Uzyskiwanie dostępu do interfejsu API kubernetes klastra usługi Fleet Hub
Jeśli zasób usługi Azure Kubernetes Fleet Manager został utworzony z włączonym klastrem koncentratora, można go użyć do centralnego sterowania scenariuszami, takimi jak propagacja zasobów Kubernetes. Z tego artykułu dowiesz się, jak uzyskać dostęp do interfejsu API Kubernetes klastra koncentratora zarządzanego przez zasób 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 Fleet z klastrem centrum i klastrami członkowskimi. Jeśli go nie masz, zobacz Create an Azure Kubernetes Fleet Manager resource and join member clusters using 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ć wartość Microsoft.ContainerService/fleets/listCredentials/action zasobu Fleet.
Uzyskiwanie dostępu do interfejsu API kubernetes klastra usługi Fleet Hub
Ustaw następujące zmienne środowiskowe dla identyfikatora subskrypcji, grupy zasobów i zasobu Fleet:
export SUBSCRIPTION_ID=<subscription-id> export GROUP=<resource-group-name> export FLEET=<fleet-name>
Ustaw domyślną subskrypcję platformy Azure do użycia przy użyciu
az account set
polecenia .az account set --subscription ${SUBSCRIPTION_ID}
Pobierz plik kubeconfig zasobu floty klastra centrum przy użyciu
az fleet get-credentials
polecenia .az fleet get-credentials --resource-group ${GROUP} --name ${FLEET}
Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
Merged "hub" as current context in /home/fleet/.kube/config
Ustaw następującą zmienną środowiskową dla
id
zasobu floty klastra koncentratora:export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}
Autoryzuj tożsamość do serwera interfejsu API Kubernetes zasobu floty klastra koncentratora 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ć podobnie do następujących przykładowych danych wyjściowych:
{ "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
W przypadku powodzenia dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
NAME JOINED AGE aks-member-1 True 2m aks-member-2 True 2m aks-member-3 True 2m
Następne kroki
- Propagacja zasobów z klastra centrum Floty do klastrów członkowskich.
Azure Kubernetes Service