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.
Aplica-se a: ✔️ AKS Automatic ✔️ AKS Standard
Para a maioria das cargas de trabalho de produção, o AKS Automatic é a opção predefinida pronta para produção recomendada para o AKS. Os clusters automáticos do AKS incluem um gateway NAT gerido pré-configurado.
No AKS Standard, pode criar ou configurar um gateway NAT gerido quando quiser conectividade de saída gerida por AKS para o seu cluster. Para cenários de rede bring-your-own (BYO), utilize um gateway NAT atribuído pelo utilizador.
Embora possa encaminhar o tráfego de saída através de um Balanceador de Carga do Azure, existem limitações quanto ao número de fluxos de tráfego de saída que pode ter. O Azure NAT Gateway suporta até 64.512 fluxos de tráfego UDP e TCP de saída por endereço IP, com um máximo de 16 endereços IP. Três tipos de saída suportam o gateway NAT: managedNATGatewayV2 (Pré-visualização), managedNATGateway e userAssignedNATGateway.
Este artigo mostra-lhe como criar um cluster AKS com gateway NAT gerido e gateway NAT atribuído pelo utilizador para tráfego de saída. Também mostra como desativar o OutboundNAT para Windows.
Importante
O tipo de saída managedNATGatewayV2 está atualmente em pré-visualização.
Consulte os Termos Suplementares de Utilização para Microsoft Azure Prévias para termos legais que se aplicam a funcionalidades Azure que estão em beta, pré-visualização ou ainda não lançadas em disponibilidade geral.
Pré-requisitos
Os clusters automáticos do AKS incluem um gateway NAT gerido pré-configurado. Os passos deste artigo são principalmente para cenários de rede AKS Standard e personalizados.
- Certifica-te de que estás a usar a versão mais recente do CLI do Azure.
- Certifica-te de que estás a usar a versão 1.20.x do Kubernetes ou posterior.
- O gateway NAT gerido não é compatível com redes virtuais personalizadas.
Importante
Em clusters não privados, o tráfego do cluster de servidores API é encaminhado e processado através do tipo de saída do cluster. Para evitar que o tráfego do servidor de API seja processado como tráfego público, considere o uso de um cluster privado ou confira o recurso de integração de rede virtual do servidor de API.
Gateway NAT gerido no AKS
O AKS Automatic utiliza o gateway NAT gerido como parte da sua configuração predefinida, pronta para produção. Use esta secção se estiver a trabalhar com o AKS Standard ou se precisar de perceber como se comporta um gateway NAT gerido num cluster AKS.
O gateway NAT gerido é a opção de saída gerida pelo AKS. O AKS cria e gere o gateway NAT para fornecer conectividade de saída aos nós do seu cluster.
Utilize gateway NAT gerido quando pretender:
- Conectividade de saída gerida por AKS com menos sobrecarga operacional.
- Um caminho de saída predefinido adequado para produção.
- Gestão de saída mais simples do que uma implementação de NAT gateway gerida pelo cliente.
- Um modelo de rede AKS padrão sem utilizar o seu próprio recurso de gateway NAT.
Criar um cluster AKS com um gateway NAT gerenciado
Parâmetros de IP de saída
A tabela seguinte descreve cada parâmetro de IP de saída e quando utilizá-lo:
| Parâmetro | Entrada | Versão do IP | Quem gere as IPs públicas |
|---|---|---|---|
--nat-gateway-managed-outbound-ip-count |
Valor dentro do intervalo de [1, 16]. Número desejado de IPv4s de saída para a ligação de saída do gateway NAT. | IPv4 | Azure |
--nat-gateway-managed-outbound-ipv6-count |
Valor dentro do intervalo de [1, 16]. Número desejado de IPv6s para a conexão de saída do gateway NAT. | IPv6 | Azure |
--nat-gateway-outbound-ips |
IDs de recursos de IP público separados por vírgulas para a ligação de saída do NAT gateway. | IPv4 ou IPv6 | Cliente |
--nat-gateway-outbound-ip-prefixes |
IDs de recurso de prefixo de IP público, separados por vírgulas, para ligação de saída do gateway NAT. | IPv4 ou IPv6 | Cliente |
Crie um cluster AKS com um gateway NAT StandardV2 gerido (managedNATGatewayV2)
Importante
Os recursos de pré-visualização do AKS estão disponíveis numa base de autosserviço e adesão voluntária. As visualizações prévias são fornecidas "como estão" e "conforme disponíveis" e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões de teste do AKS são parcialmente cobertas pelo suporte ao cliente numa base de melhor esforço. Assim sendo, estas funcionalidades não se destinam ao uso em produção. Para obter mais informações, consulte os seguintes artigos de suporte:
- Crie um cluster AKS com um gateway NAT StandardV2 gerido usando os parâmetros
az aks create,--outbound-type managedNATGateway,--nat-gateway-outbound-ips,--nat-gateway-outbound-ip-prefixes,--nat-gateway-managed-outbound-ip-count,--nat-gateway-managed-outbound-ipv6-counte--nat-gateway-idle-timeoutno comando. - Quando configura IPs de saída para um
managedNATgatewayV2, use uma das seguintes abordagens. Não podes usar tanto IPs de saída geridos pelo Azure como definidos pelo cliente.-
IPs geridos pelo Azure: Use
--nat-gateway-managed-ip-outbound-counte--nat-gateway-managed-outbound-ipv6-countfaça com que o Azure aloque e gere automaticamente os IPs públicos de saída em seu nome. -
IPs definidos pelo cliente: Utilize
--nat-gateway-outbound-ipse--nat-gateway-outbound-ip-prefixespara utilizar os seus próprios endereços IP públicos ou prefixos de IP público pré-provisionados, o que lhe dá controlo total sobre os endereços específicos utilizados para o tráfego de saída. O Gateway NAT StandardV2 requer a utilização de novos IPs públicos StandardV2. Os IPs públicos Standard SKU existentes não funcionam com o gateway NAT StandardV2.
-
IPs geridos pelo Azure: Use
Instala a extensão aks-preview CLI do Azure
O tipo managedNATGatewayV2 de saída está atualmente em versão preliminar. Para usar este tipo de saída, instale a extensão da aks-preview CLI do Azure e registe o sinalizador de funcionalidade ManagedNATGatewayV2Preview.
Instale ou atualize a extensão CLI do Azure preview usando o comando az extension add ou az extension update. A versão mínima da extensão da CLI do aks-preview Azure é 20.0.0b1.
# Install the aks-preview extension
az extension add --name aks-preview
# Update the extension to make sure you have the latest version installed
az extension update --name aks-preview
Registar o sinalizador de funcionalidade ManagedNATGatewayV2Preview
Registe o sinalizador de funcionalidade
ManagedNATGatewayV2Previewcom o comandoaz feature register.az feature register --namespace "Microsoft.ContainerService" --name "ManagedNATGatewayV2Preview"Verifique o registro bem-sucedido usando o
az feature showcomando. O registo demora alguns minutos a ser concluído.az feature show --namespace "Microsoft.ContainerService" --name "ManagedNATGatewayV2Preview"Quando a funcionalidade mostrar
Registered, atualize o registo do fornecedor de recursosMicrosoft.ContainerServiceusando o comandoaz provider register.
Crie um cluster AKS com um gateway NAT StandardV2 gerido
Os seguintes comandos criam o grupo de recursos necessário, o IP público e os recursos de prefixo IP público para serem ligados ao gateway NAT, e o cluster AKS com um gateway NAT StandardV2 gerido.
Crie um grupo de recursos usando o
az group createcomando.# Set environment variables for resource group, AKS cluster, public IP, and public IP prefix names export RANDOM_SUFFIX=$(openssl rand -hex 3) export MY_RG="myResourceGroup$RANDOM_SUFFIX" export MY_AKS="myNatV2Cluster$RANDOM_SUFFIX" export MY_IP="myNatOutboundIP$RANDOM_SUFFIX" export MY_IP_PREFIX="myNatOutboundIPPrefix$RANDOM_SUFFIX" # Create the resource group az group create --name $MY_RG --location "eastus2"Crie um endereço IPv4 público redundante à zona e um prefixo de IP público, usando o comando
az network public-ip create. Armazenar$MY_IPe$MY_IP_PREFIXpara usar como IPs de saída para o gateway NAT gerido StandardV2.# Create a zone redundant IPv4 public IP address and store the ID to $MY_IP_ID for later use export MY_IP_ID=$(az network public-ip create \ --resource-group $MY_RG \ --name $MY_IP \ --location eastus2 \ --sku StandardV2 \ --allocation-method Static \ --version IPv4 \ --zone 1 2 3 \ --query publicIp.id \ --output tsv) # Create a zone redundant IPv4 public IP prefix and store the ID to $MY_IP_PREFIX_ID for later use export MY_IP_PREFIX_ID=$(az network public-ip prefix create \ --resource-group $MY_RG \ --name $MY_IP_PREFIX \ --location eastus2 \ --length 31 \ --sku StandardV2 \ --version IPv4 \ --zone 1 2 3 \ --query id \ --output tsv)Crie o cluster AKS e referencie o endereço IP público (
$MY_IP_ID) e o prefixo de IP público ($MY_IP_PREFIX_ID) utilizando o comandoaz aks createcom os parâmetros--outbound-type managedNATGatewayV2,--nat-gateway-outbound-ipse--nat-gateway-outbound-ip-prefixes.az aks create \ --resource-group $MY_RG \ --name $MY_AKS \ --node-count 3 \ --outbound-type managedNATGatewayV2 \ --nat-gateway-outbound-ips $MY_IP_ID \ --nat-gateway-outbound-ip-prefixes $MY_IP_PREFIX_ID \ --nat-gateway-idle-timeout 4 \ --generate-ssh-keys
Atualize os IPs de saída, prefixos de IPs de saída, contagem de IPs de saída geridos ou o timeout de inatividade, usando o comando az aks update com o parâmetro --nat-gateway-outbound-ips, --nat-gateway-outbound-ip-prefixes, --nat-gateway-managed-outbound-count, --nat-gateway-managed-outbound-ipv6-count ou --nat-gateway-idle-timeout. A managedNATGatewayV2 não pode ser atualizado para alternar entre endereços IP de saída definidos pelo cliente e geridos após a criação. A configuração do IP de saída é determinada quando o gateway NAT StandardV2 é inicialmente criado e permanece imutável.
Crie um cluster AKS com um gateway NAT Standard gerido (managedNATGateway)
- Crie um cluster AKS com um gateway NAT Standard gerido, utilizando o comando
az aks createcom os parâmetros--outbound-type managedNATGateway,--nat-gateway-managed-outbound-ip-counte--nat-gateway-idle-timeout. Se quiser que o gateway NAT opere fora de uma zona de disponibilidade específica, especifique a zona usando--zones. - Não pode usar um recurso de gateway NAT gerido em múltiplas zonas de disponibilidade. Para conectividade de saída redundante por zona, considere usar
managedNATgatewayV2. - Se não especificar uma zona ao criar um gateway NAT gerido, o gateway NAT é implementado em nenhuma zona por predefinição. Quando o gateway NAT não está em nenhuma zona, o Azure coloca o recurso numa zona para si. Para mais informações sobre o modelo de implantação não zonal, consulte gateway NAT não-zonal.
Criar um cluster AKS com um userAssignedNatGateway
Esta configuração requer rede própria (via Azure CNI) e que um gateway NAT esteja preconfigurado na sub-rede. Tanto gateways NAT Standard como StandardV2 são suportados para isto outbound-type. Os comandos seguintes criam os recursos necessários para implementar um recurso de gateway NAT StandardV2 para o seu cluster AKS.
Crie um grupo de recursos usando o
az group createcomando.# Set environment variables for resource group, AKS cluster, public IP, and public IP prefix names export RANDOM_SUFFIX=$(openssl rand -hex 3) export MY_RG="myResourceGroup$RANDOM_SUFFIX" # Create the resource group az group create --name $MY_RG --location southcentralusCrie uma identidade gerida para permissões de rede e armazene o ID
$IDENTITY_IDpara uso posterior.export IDENTITY_NAME="myNatClusterId$RANDOM_SUFFIX" export IDENTITY_ID=$(az identity create \ --resource-group $MY_RG \ --name $IDENTITY_NAME \ --location southcentralus \ --query id \ --output tsv)Exemplo de saída:
/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myNatClusterIdxxxCrie um IP público StandardV2 para o gateway NAT usando o
az network public-ip createcomando. Um gateway NAT StandardV2 requer um endereço IP público StandardV2.export PIP_NAME="myNatGatewayPip$RANDOM_SUFFIX" az network public-ip create \ --resource-group $MY_RG \ --name $PIP_NAME \ --location southcentralus \ --allocation-method Static \ --version IPv4 \ --zone 1 2 3 \ --sku standard-v2Crie o gateway NAT StandardV2 usando o
az network nat gateway createcomando.export NATGATEWAY_NAME="myNatGateway$RANDOM_SUFFIX" az network nat gateway create \ --resource-group $MY_RG \ --name $NATGATEWAY_NAME \ --location southcentralus \ --public-ip-addresses $PIP_NAME \ --sku StandardV2 --idle-timeout 4Importante
Para garantir a redundância das zonas, implemente um recurso de gateway NAT StandardV2, que se estende por várias zonas de disponibilidade numa região. Esta configuração garante a continuação da conectividade de saída mesmo que uma única zona falhe. Para mais detalhes sobre o gateway NAT StandardV2 e os seus benefícios, consulte Gateway NAT StandardV2. Em comparação, um recurso de gateway NAT Standard fornece resiliência apenas dentro da zona de disponibilidade onde é implementado.
Crie uma rede virtual usando o
az network vnet createcomando.export VNET_NAME="myVnet$RANDOM_SUFFIX" az network vnet create \ --resource-group $MY_RG \ --name $VNET_NAME \ --location southcentralus \ --address-prefixes 172.16.0.0/20Crie uma sub-rede na rede virtual usando o gateway NAT e armazene a ID para
$SUBNET_IDuso posterior.export SUBNET_NAME="myNatCluster$RANDOM_SUFFIX" export SUBNET_ID=$(az network vnet subnet create \ --resource-group $MY_RG \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --address-prefixes 172.16.0.0/22 \ --nat-gateway $NATGATEWAY_NAME \ --query id \ --output tsv)Crie um cluster AKS usando a sub-rede com o gateway NAT e a identidade gerenciada usando o
az aks createcomando.export AKS_NAME="myNatCluster$RANDOM_SUFFIX" az aks create \ --resource-group $MY_RG \ --name $AKS_NAME \ --location southcentralus \ --network-plugin azure \ --vnet-subnet-id $SUBNET_ID \ --outbound-type userAssignedNATGateway \ --assign-identity $IDENTITY_ID \ --generate-ssh-keys
Considerações sobre a produção
Quando usar um gateway NAT gerido em produção, planeie o comportamento do tráfego de saída, o acesso a servidores API e a resiliência da carga de trabalho.
- Usa o AKS Automático quando quiseres o padrão recomendado para produção para a maioria das cargas de trabalho do AKS.
- Usa gateway NAT gerido no AKS Standard quando quiseres conectividade de saída gerida por AKS sem trazeres o teu próprio gateway NAT.
- Use um cluster privado ou uma integração VNet de API Server quando quiser reduzir a exposição ao tráfego do servidor API.
- Revise os requisitos de IP de saída antes de lançar.
- Se as suas cargas de trabalho dependem de endereços de saída fixos, valide que o gateway NAT gerido cumpre esses requisitos antes da implementação.
- Se precisares de gerir o NAT independentemente do AKS, usa um gateway NAT atribuído pelo utilizador.
Desativar OutboundNAT para Windows
O Windows OutboundNAT pode causar certos problemas de ligação e comunicação com os teus pods AKS. Um exemplo de problema é a reutilização da porta do nó. Neste exemplo, o Windows OutboundNAT usa portas para traduzir o IP do seu pod para o IP anfitrião do nó Windows, o que pode causar uma ligação instável ao serviço externo devido a um problema de esgotamento de portas.
O Windows ativa o OutboundNAT por defeito. Agora pode desativar manualmente o OutboundNAT ao criar novos pools de agentes Windows.
Pré-requisitos e limitações
- Precisas de um cluster AKS existente com v1.26 ou posterior. Se estiveres a usar Kubernetes versão 1.25 ou anterior, atualiza a tua configuração de implementação.
- Não podes definir o tipo de saída do cluster para Balanceador de Carga. Você pode defini-lo como Gateway NAT ou UDR:
- NAT Gateway: O NAT Gateway gere automaticamente as ligações NAT e é mais potente do que o Balanceador de Carga Standard. Pode incorrer em custos adicionais ao utilizar esta opção.
- UDR (UserDefinedRouting): Você deve ter em mente as limitações de porta ao configurar regras de roteamento.
- Para mudar de um balanceador de carga para um NAT Gateway, pode adicionar um gateway NAT ao VNet ou executar
az aks upgradepara atualizar o tipo de saída.
Nota
UserDefinedRouting tem as seguintes limitações:
- O SNAT do Balanceador de Carga (deve usar o Outbound NAT predefinido) tem 64 portas no IP do anfitrião.
- O SNAT do Azure Firewall (desativar o OutboundNAT) tem 2.496 portas por IP público.
- O SNAT pelo NAT Gateway (com o OutboundNAT desativado) tem 64 512 portas por IP público.
- Se o intervalo de portas do Azure Firewall não for suficiente para a sua aplicação, precisa de usar o NAT Gateway.
- Azure Firewall não faz SNAT com as regras de rede quando o endereço IP de destino está num intervalo de endereços IP privados conforme IANA RFC 1918 ou espaço de endereçamento partilhado conforme IANA RFC 6598.
Desativar manualmente o OutboundNAT para Windows
Desative manualmente o OutboundNAT para Windows ao criar novos pools de agentes Windows usando o comando
az aks nodepool addcom a flag--disable-windows-outbound-nat.Nota
Você pode usar um cluster AKS existente, mas talvez seja necessário atualizar o tipo de saída de conexão e adicionar um pool de nós para habilitar
--disable-windows-outbound-nat.export WIN_NODEPOOL_NAME="win$(head -c 1 /dev/urandom | xxd -p)" az aks nodepool add \ --resource-group $MY_RG \ --cluster-name $MY_AKS \ --name $WIN_NODEPOOL_NAME \ --node-count 3 \ --os-type Windows \ --disable-windows-outbound-natExemplo de saída:
{ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myNatClusterxxx/agentPools/mynpxxx", "name": "mynpxxx", "osType": "Windows", "provisioningState": "Succeeded", "resourceGroup": "myResourceGroupxxx", "type": "Microsoft.ContainerService/managedClusters/agentPools" }
Conteúdo relacionado
Para mais informações sobre Azure NAT Gateway e AKS Automatic, consulte os seguintes artigos: