Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: ✔️ Gerenciador de Frota com cluster do hub
Se o recurso Gerenciador de Frota de Kubernetes do Azure (Frota do Kubernetes) foi criado com um cluster de hub, você pode usá-lo para controlar cenários como a propagação de recursos do Kubernetes. Neste artigo, você aprenderá a acessar a API do Kubernetes para um cluster de hub da Frota do Kubernetes.
Antes de começar
- Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
- Você precisa de um recurso de Frota do Kubernetes com um cluster de hub e clusters membros. Se você não tiver um, consulte Criar um recurso do Gerenciador de Frota de Kubernetes do Azure e ingressar clusters membros usando a CLI do Azure.
- A identidade (usuário ou entidade de serviço) que você está usando precisa ter permissões Microsoft.ContainerService/fleets/listCredentials/action no recurso de Frota do Kubernetes.
Se o recurso do Kubernetes Fleet Manager (Kubernetes Fleet) do Azure tiver sido criado com um cluster de hub privado, você poderá usá-lo para controlar centralmente cenários como a propagação de recursos do Kubernetes. Neste artigo, você aprenderá a acessar a API do Kubernetes para um cluster de hub privado do Kubernetes Fleet usando com segurança o recurso de túnel de cliente nativo do Azure Bastion.
Usar o Azure Bastion protege seu cluster de hub privado de expor pontos de extremidade ao mundo externo, ao mesmo tempo em que fornece acesso seguro. Para obter mais informações, consulte o que é o Azure Bastion?
Antes de começar
- Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
- Você precisa de um recurso de Frota do Kubernetes com um cluster de hub e clusters membros. Se você não tiver um, consulte Criar um recurso do Gerenciador de Frota de Kubernetes do Azure e ingressar clusters membros usando a CLI do Azure.
- Você precisa de uma rede virtual com o host do Bastion já instalado.
- Verifique se você configurou um host do Azure Bastion para a rede virtual na qual o Fleet Manager está localizado. Para configurar um host do Azure Bastion, consulte Início Rápido: Implantar o Bastion com configurações padrão.
- O Bastion deve ser o SKU Standard ou Premium e ter suporte ao cliente nativo habilitado nas configurações.
- A identidade (usuário ou entidade de serviço) que você está usando precisa ter:
- Permissões do Microsoft.ContainerService/fleets/listCredentials/action no recurso de Frota do Kubernetes.
- Microsoft.Network/bastionHosts/read no Recurso do Bastion.
- Microsoft.Network/virtualNetworks/read na rede virtual do cluster de hub privado.
Acesse a API do Kubernetes
Defina as seguintes variáveis de ambiente para sua ID de assinatura, grupo de recursos e recurso de Frota do Kubernetes:
export SUBSCRIPTION_ID=<subscription-id> export GROUP=<resource-group-name> export FLEET=<fleet-name>Defina a assinatura padrão do Azure usando o comando
az account set:az account set --subscription ${SUBSCRIPTION_ID}Obtenha o arquivo kubeconfig do cluster de hub da Frota do Kubernetes usando o comando
az fleet get-credentials:az fleet get-credentials --resource-group ${GROUP} --name ${FLEET}Seu resultado deve ser semelhante ao seguinte exemplo:
Merged "hub" as current context in /home/fleet/.kube/configDefina a seguinte variável de ambiente para o valor
FLEET_IDdo recurso de Frota do Kubernetes do cluster de hub:export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/${FLEET}Autorize sua identidade a acessar o cluster de hub da Frota do Kubernetes usando os seguintes comandos.
Para a variável de ambiente
ROLE, você pode usar uma das quatro definições de função integradas a seguir como valor:- Leitor de RBAC do Gerenciador de Frota de Kubernetes do Azure
- Gravador RBAC do Gerenciador de Frota de Kubernetes do Azure
- Administrador RBAC do Gerenciador de Frota de Kubernetes do Azure
- Administrador do cluster de RBAC do Gerenciador de Frota de Kubernetes do 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}Seu resultado deve ser semelhante ao seguinte exemplo:
{ "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" }
Verifique se você pode acessar o servidor de API usando o comando
kubectl get memberclusters:kubectl get memberclustersSe o comando for bem-sucedido, a saída deverá ser semelhante ao seguinte exemplo:
NAME JOINED AGE aks-member-1 True 2m aks-member-2 True 2m aks-member-3 True 2m
Abra o túnel para o cluster de hubs do Gerenciador de Frotas Privadas:
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>Em uma nova janela de terminal, conecte-se ao cluster do hub por meio do túnel Bastion e verifique o acesso do servidor de API:
kubectl get memberclusters --server=https://localhost:<LocalMachinePort>Se o comando for bem-sucedido, a saída deverá ser semelhante ao seguinte exemplo:
NAME JOINED AGE aks-member-1 True 2m aks-member-2 True 2m aks-member-3 True 2m