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.
Este artigo mostra como criar um cluster de AKS (Serviço de Kubernetes do Azure) com NAP (provisionamento automático de nó) habilitado em uma rede virtual personalizada (VNet). Crie uma VNet e uma sub-rede e conceda a uma identidade gerenciada acesso à VNet.
Pré-requisitos
- Uma assinatura do Azure. Se você não tiver uma, poderá criar uma conta gratuita.
- Versão da CLI
2.76.0do Azure ou posterior. Para saber qual é a versão, executeaz --version. Para obter informações sobre como instalar ou atualizar a CLI do Azure, confira Instalar a CLI do Azure. - Um ambiente Bash, como Azure Cloud Shell. Se você executar os comandos localmente, entre usando o
az logincomando. - O cliente de linha de comando do Kubernetes.
kubectlkubectljá está instalado no Azure Cloud Shell. Para instalá-lo localmente, use oaz aks install-clicomando. -
Microsoft.Authorization/roleAssignments/writepermissão, como a função administrador de Controle de Acesso baseada em função, para atribuir a função Colaborador de Rede. - Familiaridade com os conceitos descritos na visão geral do NAP (provisionamento automático de nó) no AKS e visão geral das configurações de rede para NAP (provisionamento automático de nó) no AKS (Serviço de Kubernetes do Azure).
Limitações
- Ao criar um cluster NAP em uma VNet (rede virtual personalizada), você deve usar um Load Balancer Standard. Não há suporte para o Load Balancer Básico.
- Para examinar outras limitações e recursos sem suporte para NAP, consulte a Visão geral do NAP (provisionamento automático de nós) no artigo do AKS .
Definir variáveis de ambiente e criar um grupo de recursos
Defina as variáveis de ambiente usadas ao longo deste artigo. Substitua os valores de placeholder pelos seus próprios valores.
export SUBSCRIPTION_ID="<subscription-id>" export RG_NAME="<resource-group-name>" export LOCATION="<location>" export VNET_NAME="<vnet-name>" export SUBNET_NAME="<subnet-name>" export IDENTITY_NAME="<managed-identity-name>" export CLUSTER_NAME="<cluster-name>"Selecione sua assinatura Azure usando o
az account setcomando.az account set --subscription $SUBSCRIPTION_IDCrie um grupo de recursos usando o comando
az group create.az group create \ --name $RG_NAME \ --location $LOCATION
Criar a rede virtual e a sub-rede
Crie uma VNet usando o
az network vnet createcomando.az network vnet create \ --name $VNET_NAME \ --resource-group $RG_NAME \ --location $LOCATION \ --address-prefixes 172.19.0.0/16Crie uma sub-rede de nó usando o
az network vnet subnet createcomando.az network vnet subnet create \ --resource-group $RG_NAME \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --address-prefixes 172.19.0.0/24
Criar uma identidade gerenciada e atribuir permissões de VNet
Crie uma identidade gerenciada usando o comando
az identity create.az identity create \ --resource-group $RG_NAME \ --name $IDENTITY_NAME \ --location $LOCATIONUse o
az identity showcomando para obter a ID principal da identidade gerenciada e salvá-la em uma variável de ambiente.IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group $RG_NAME --name $IDENTITY_NAME --query principalId -o tsv)Atribua a função Colaborador de Rede à identidade gerenciada usando o
az role assignment createcomando. O--assignee-principal-typeparâmetro impede falhas causadas por atrasos de replicação após a criação da identidade gerenciada.Importante
A função Colaborador de Rede no escopo da VNet concede permissões amplas. Antes de usar essa abordagem em produção, examine a configuração do RBAC para configurações de sub-rede personalizadas e considere atribuir permissões de sub-rede com escopo.
az role assignment create \ --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RG_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME" \ --role "Network Contributor" \ --assignee-object-id $IDENTITY_PRINCIPAL_ID \ --assignee-principal-type ServicePrincipal
Habilitar o NAP e conectar-se ao cluster
Use a identidade gerenciada, a VNet e a sub-rede de nó que você criou nas seções anteriores. O cluster deve usar um Standard Load Balancer, conforme descrito em Limitações.
Crie um cluster do AKS com NAP habilitado em sua VNet personalizada usando o
az aks createcomando. A tabela a seguir descreve o NAP e os parâmetros de rede usados no comando:Parâmetro Value Description --node-provisioning-modeAutoHabilita o NAP no cluster. --network-pluginazureUsa Azure CNI para rede de cluster. --network-plugin-modeoverlayUsa Azure sobreposição de CNI para a rede de pods. --network-dataplaneciliumUsa o plano de dados Cilium. Para obter mais informações, consulte Visão geral das configurações de rede para NAP (provisionamento automático de nó) no AKS (Serviço de Kubernetes do Azure).
az aks create \ --name $CLUSTER_NAME \ --resource-group $RG_NAME \ --location $LOCATION \ --assign-identity "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RG_NAME/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$IDENTITY_NAME" \ --network-dataplane cilium \ --network-plugin azure \ --network-plugin-mode overlay \ --vnet-subnet-id "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RG_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME" \ --node-provisioning-mode Auto \ --generate-ssh-keysQuando a criação do cluster for concluída, o comando retornará informações formatadas em JSON sobre o cluster.
Configure o
kubectlpara se conectar ao cluster do Kubernetes usando o comandoaz aks get-credentials. Este comando baixa as credenciais e configura a CLI do Kubernetes para usá-las.az aks get-credentials \ --resource-group $RG_NAME \ --name $CLUSTER_NAMEVerifique a conexão com o cluster usando o comando
kubectl get. Esse comando retorna uma lista dos nós de cluster.kubectl get nodes
Próximas etapas
Para obter mais informações sobre o provisionamento automático de nós no AKS, consulte os seguintes artigos: