Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo mostra-lhe como criar um cluster do Azure Kubernetes Service (AKS) com o auto-provisionamento de nós (NAP) ativado numa rede virtual personalizada (VNet). Cria-se um VNet e uma sub-rede, depois concede-se a uma identidade gerida o acesso ao VNet.
Pré-requisitos
- Uma assinatura do Azure. Se não tiver uma, pode criar uma conta gratuita.
- Versão
2.76.0da CLI do Azure ou posterior. Para localizar a versão, executeaz --version. Para obter mais informações sobre como instalar ou atualizar a CLI do Azure, consulte Instalar a CLI do Azure. - Um ambiente Bash, como o Azure Cloud Shell. Se executares os comandos localmente, inicia sessão usando o
az logincomando. - O cliente de linha de comandos Kubernetes,
kubectl.kubectljá está instalado no Azure Cloud Shell. Para instalar localmente, use oaz aks install-clicomando. -
Microsoft.Authorization/roleAssignments/writepermissão, como o papel de Administrador de Controlo de Acesso Baseado em Papéis, para atribuir o papel de Contribuidor de Rede. - Familiaridade com os conceitos descritos em Visão Geral do auto-provisionamento de nós (NAP) no AKS e Visão Geral das configurações de rede para auto-provisionamento de nós (NAP) no Azure Kubernetes Service (AKS).
Limitações
- Ao criar um cluster NAP em uma rede virtual personalizada (VNet), você deve usar um balanceador de carga padrão. O Basic Balanceador de Carga não é suportado.
- Para analisar outras limitações e recursos sem suporte para NAP, consulte o artigo Visão geral do provisionamento automático de nós (NAP) no AKS .
Defina variáveis de ambiente e crie um grupo de recursos
Defina as variáveis de ambiente utilizadas ao longo deste artigo. Substitui os valores provisórios pelos teus 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 a sua subscrição do 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 uma rede virtual e uma 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ós 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
Crie uma identidade gerida e atribua permissões VNet
Crie uma identidade gerenciada usando o
az identity createcomando.az identity create \ --resource-group $RG_NAME \ --name $IDENTITY_NAME \ --location $LOCATIONUse o
az identity showcomando para obter o ID principal da identidade gerida e guardá-lo numa variável de ambiente.IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group $RG_NAME --name $IDENTITY_NAME --query principalId -o tsv)Atribuir o papel de Contribuidor de Rede à identidade gerida usando o
az role assignment createcomando. O--assignee-principal-typeparâmetro previne falhas causadas por atrasos de replicação após a criação da identidade gerida.Importante
O papel de Network Contributor no âmbito VNet concede permissões amplas. Antes de usar esta abordagem em produção, reveja a configuração do RBAC para configurações personalizadas de sub-redes e considere atribuir permissões de sub-rede com âmbito definido.
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
Ativar o NAP e ligar-se ao cluster
Use a identidade gerida, o VNet e a sub-rede de nós que criou nas secções anteriores. O cluster deve usar um Balanceador de Carga Standard, conforme descrito nas Limitações.
Crie um cluster AKS com NAP ativada em sua VNet personalizada usando o
az aks createcomando. A tabela seguinte descreve os parâmetros NAP e de rede usados no comando:Parâmetro Value Descrição --node-provisioning-modeAutoAtiva o NAP no cluster. --network-pluginazureUsa o Azure CNI para redes de clusters. --network-plugin-modeoverlayUsa o Azure CNI Overlay para rede pod. --network-dataplaneciliumUtiliza o plano de dados Cilium. Para mais informações, consulte Visão Geral das configurações de rede para auto-provisionamento de nós (NAP) no Azure Kubernetes Service (AKS).
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 termina, o comando devolve informação em formato JSON sobre o cluster.
Configure
kubectlpara se conectar ao cluster do Kubernetes usando oaz aks get-credentialscomando. Este comando baixa credenciais e configura a CLI do Kubernetes para usá-las.az aks get-credentials \ --resource-group $RG_NAME \ --name $CLUSTER_NAMEVerifique a conexão ao seu cluster utilizando o comando
kubectl get. Este comando devolve uma lista dos nodes do cluster.kubectl get nodes
Próximos passos
Para obter mais informações sobre o provisionamento automático de nós no AKS, consulte os seguintes artigos: