Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: ✔️ Флит-менеджер с хаб-кластером
Если ресурс Azure Kubernetes Fleet Manager (Kubernetes Fleet) был создан с кластером концентратора, его можно использовать для централизованного управления сценариями распространения ресурсов Kubernetes. В этой статье вы узнаете, как получить доступ к API Kubernetes для кластера Концентратора Парка Kubernetes.
Перед тем как начать
- Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.
- Вам нужен ресурс Kubernetes Fleet с кластером концентраторов и кластерами-членами. Если у вас его нет, см. статью "Создание ресурса Azure Kubernetes Fleet Manager" и присоединение кластеров участников с помощью Azure CLI.
- Удостоверение (пользователь или субъект-служба), которое вы используете, должны иметь разрешения Microsoft.ContainerService/fleets/listCredentials/action для ресурса Kubernetes Fleet.
Если ресурс Azure Kubernetes Fleet Manager (Kubernetes Fleet) был создан с кластером частного концентратора, его можно использовать для централизованного управления сценариями распространения ресурсов Kubernetes. В этой статье вы узнаете, как получить доступ к API Kubernetes для частного кластера Kubernetes Fleet Hub безопасно с помощью функции туннелирования собственного клиента Бастиона Azure.
Использование Бастиона Azure защищает кластер частного концентратора от предоставления конечных точек внешнему миру, обеспечивая безопасный доступ. Дополнительные сведения см. в статье "Что такое Бастион Azure"?
Перед тем как начать
- Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.
- Вам нужен ресурс Kubernetes Fleet с кластером концентраторов и кластерами-членами. Если у вас его нет, см. статью "Создание ресурса Azure Kubernetes Fleet Manager" и присоединение кластеров участников с помощью Azure CLI.
- Вам нужна виртуальная сеть с уже установленного узлом Bastion.
- Убедитесь, что вы настроили узел Бастиона Azure для виртуальной сети, в которой находится диспетчер флота. Чтобы настроить узел Azure Bastion, см. Краткое руководство: Развертывание бастиона с параметрами по умолчанию.
- Бастион должен быть SKU уровня "Стандартный" или "Премиум", и в параметрах конфигурации должна быть включена поддержка клиента.
- Удостоверение (пользователь или служебный принципал), которое вы используете, должно иметь:
- Разрешения Microsoft.ContainerService/fleets/listCredentials/action на ресурс Kubernetes Fleet.
- Microsoft.Network/bastionHosts/read на ресурсе Bastion.
- Microsoft.Network/virtualNetworks/read в виртуальной сети кластера частного концентратора.
Доступ к API Kubernetes
Задайте следующие переменные среды для идентификатора подписки, группы ресурсов и ресурса Kubernetes Fleet:
export SUBSCRIPTION_ID=<subscription-id> export GROUP=<resource-group-name> export FLEET=<fleet-name>Задайте подписку Azure по умолчанию с помощью
az account setкоманды:az account set --subscription ${SUBSCRIPTION_ID}Получите файл kubeconfig кластера концентратора Kubernetes Fleet с помощью
az fleet get-credentialsкоманды:az fleet get-credentials --resource-group ${GROUP} --name ${FLEET}Результат должен выглядеть примерно следующим образом:
Merged "hub" as current context in /home/fleet/.kube/configЗадайте следующую переменную среды для
FLEET_IDзначения ресурса Kubernetes Fleet кластера концентратора:export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}Авторизуйте удостоверение для доступа к кластеру концентратора Kubernetes Fleet с помощью следующих команд.
Для переменной
ROLEсреды в качестве значения можно использовать одно из следующих четырех встроенных определений ролей:- Средство чтения RBAC диспетчера флота Azure Kubernetes
- Модуль записи RBAC диспетчера флота Azure Kubernetes
- Администратор RBAC диспетчера парка Azure Kubernetes
- Администратор кластера RBAC диспетчера парка Azure Kubernetes
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}Результат должен выглядеть примерно следующим образом:
{ "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" }
Убедитесь, что вы можете получить доступ к серверу API с помощью
kubectl get memberclustersкоманды:kubectl get memberclustersЕсли команда выполнена успешно, выходные данные должны выглядеть примерно так:
NAME JOINED AGE aks-member-1 True 2m aks-member-2 True 2m aks-member-3 True 2m
Откройте туннель к кластеру концентратора диспетчера частного флота.
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>В новом окне терминала подключитесь к кластеру концентратора через туннель Бастиона и проверьте доступ к серверу API:
kubectl get memberclusters --server=https://localhost:<LocalMachinePort>Если команда выполнена успешно, выходные данные должны выглядеть примерно так:
NAME JOINED AGE aks-member-1 True 2m aks-member-2 True 2m aks-member-3 True 2m
Связанный контент
Azure Kubernetes Service