Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: ✔️ Fleet Manager z klastrem hubowym
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.
Zanim rozpoczniesz
- Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- 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.
Jeśli zasób usługi Azure Kubernetes Fleet Manager (Kubernetes Fleet) został utworzony za pomocą klastra koncentratora prywatnego, możesz użyć go do centralnego sterowania scenariuszami, takimi jak propagacja zasobów Kubernetes. Z tego artykułu dowiesz się, jak bezpiecznie uzyskać dostęp do interfejsu API kubernetes dla prywatnego klastra usługi Kubernetes Fleet Hub przy użyciu natywnej funkcji tunelowania klienta usługi Azure Bastion.
Korzystanie z usługi Azure Bastion chroni prywatny klaster hub przed uwidacznianiem punktów końcowych, jednocześnie umożliwiając bezpieczny dostęp. Aby uzyskać więcej informacji, zobacz Co to jest usługa Azure Bastion?
Zanim rozpoczniesz
- Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- 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).
- Potrzebna jest sieć wirtualna z już zainstalowanym hostem usługi Bastion.
- Upewnij się, że skonfigurowaliśmy hosta usługi Azure Bastion dla sieci wirtualnej, w której znajduje się menedżer floty. Aby skonfigurować hosta usługi Azure Bastion, zobacz Szybki start: wdrażanie usługi Bastion przy użyciu ustawień domyślnych.
- Usługa Bastion musi mieć jednostkę SKU w warstwie Standardowa lub Premium i mieć włączoną natywną obsługę klienta w ustawieniach konfiguracji.
- Tożsamość (użytkownik lub jednostka usługi), której używasz, musi mieć następujące elementy:
- Uprawnienia Microsoft.ContainerService/fleets/listCredentials/action dotyczące zasobu Kubernetes Fleet.
- Microsoft.Network/bastionHosts/read w zasobie usługi Bastion.
- Microsoft.Network/virtualNetworks/read w sieci wirtualnej prywatnego klastra hubu.
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 setpolecenia :az account set --subscription ${SUBSCRIPTION_ID}Pobierz plik kubeconfig klastra koncentratora Kubernetes Fleet przy użyciu
az fleet get-credentialspolecenia :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/configUstaw następującą zmienną środowiskową dla
FLEET_IDwartoś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
ROLEmoż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 memberclustersAPI przy użyciu polecenia :kubectl get memberclustersJeś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
Otwórz tunel w klastrze centrum usługi Private Fleet Manager:
export HUB_CLUSTER_ID=<hub-cluster-id-in-FL_resourceGroup> az network bastion tunnel --name <BastionName> --resource-group ${GROUP} --target-resource-id ${HUB_CLUSTER_ID}$ --resource-port 443 --port <LocalMachinePort>W nowym oknie terminalu połącz się z klastrem głównym za pośrednictwem tunelu bastionu i sprawdź dostęp do serwera API.
kubectl get memberclusters --server=https://localhost:<LocalMachinePort>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