Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Um cluster do Serviço Kubernetes do Azure (AKS) configurado com a Integração VNet do Servidor de API projeta o ponto de extremidade do servidor de API diretamente numa sub-rede delegada na VNet onde o AKS é implantado. A integração de VNet do Servidor de API permite a comunicação de rede entre o servidor de API e os nós do cluster sem a necessidade de um link ou túnel privado. O servidor de API está disponível atrás de um VIP de balanceador de carga interno na sub-rede delegada, que os nós estão configurados para utilizar. Usando a Integração de VNet do Servidor de API, você pode garantir que o tráfego de rede entre o servidor de API e os pools de nós permaneça apenas na rede privada.
Conectividade do servidor de API
O plano de controle ou o servidor de API está em uma assinatura do Azure gerenciada pelo AKS. Seu cluster ou pool de nós está em sua assinatura do Azure. O servidor e as máquinas virtuais que compõem os nós do cluster podem se comunicar entre si por meio dos IPs VIP e pod do servidor de API projetados na sub-rede delegada.
A integração de VNet do API Server é suportada para clusters públicos ou privados. Você pode adicionar ou remover o acesso público após o provisionamento do cluster. Ao contrário dos clusters que não estão integrados à VNet, os nodos de agente sempre se comunicam diretamente com o endereço IP privado do balanceador de carga interno (ILB) do servidor de API sem usar DNS. Todo o tráfego de nó para servidor de API é mantido em rede privada e nenhum túnel é necessário para a conectividade do servidor de API para o nó. Os clientes fora do cluster que precisam se comunicar com o servidor de API podem fazê-lo normalmente se o acesso à rede pública estiver habilitado. Se o acesso à rede pública estiver desativado, você deverá seguir a mesma metodologia de configuração de DNS privado que os clusters privados padrão.
Pré-requisitos
- Você deve ter a CLI do Azure versão 2.73.0 ou posterior instalada. Você pode verificar sua versão usando o
az --versioncomando.
Limitações
- A Integração VNet do API Server não suporta Encriptação de Rede Virtual. Clusters implementados em SKUs de nó AKS v3 ou anteriores (que não suportam encriptação VNet) são permitidos, mas o tráfego não será encriptado. Clusters implementados em SKUs de nó AKS v4 ou posteriores (que suportam encriptação VNet) são bloqueados porque VNets encriptados são incompatíveis com a integração VNet do API Server. Consulte SKUs VM suportados por AKS para mais detalhes.
Disponibilidade
- A integração de VNet do API Server está disponível em todas as regiões de nuvem pública do GA, exceto eastus2 e qatarcentral. Estamos trabalhando continuamente para habilitar esse recurso nessas regiões e atualizaremos esta página quando essas regiões estiverem disponíveis.
Criar um cluster AKS com integração do Servidor de API na VNet utilizando VNet gerido
Você pode configurar os seus clusters AKS com a integração do API Server com VNet em VNet gerenciada ou no modo de trazer a sua própria VNet. Você pode criá-los como clusters públicos (com acesso ao servidor de API disponível por meio de um IP público) ou clusters privados (onde o servidor de API só é acessível por meio de conectividade VNet privada). Você também pode alternar entre um estado público e privado sem reimplantar o cluster.
Criar um grupo de recursos
Crie um grupo de recursos usando o
az group createcomando.az group create --location westus2 --name <resource-group>
Implantar um cluster público
Implante um cluster AKS público com integração do API Server à VNet para VNet gerida, usando o comando
az aks createcom a flag--enable-api-server-vnet-integration.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-apiserver-vnet-integration \ --generate-ssh-keys
Implantar um cluster privado
Implante um cluster AKS privado com integração de VNet do API Server para VNet gerida usando o comando
az aks createcom os sinalizadores--enable-api-server-vnet-integratione--enable-private-cluster.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-private-cluster \ --enable-apiserver-vnet-integration \ --generate-ssh-keys
Crie um cluster AKS privado com a integração da VNet do API Server usando a sua própria VNet.
Ao utilizar a sua própria VNet, deve-se criar e delegar uma sub-rede do servidor de API ao Microsoft.ContainerService/managedClusters, que concede ao serviço AKS permissões para injetar os pods do servidor de API e o balanceador de carga interno nessa sub-rede. Você não pode usar a sub-rede para outras cargas de trabalho, mas pode usá-la para vários clusters AKS localizados na mesma rede virtual. O tamanho mínimo suportado da sub-rede do servidor API é / 28.
A identidade do cluster precisa de permissões tanto para a sub-rede do servidor de API quanto para a do nó. A falta de permissões na sub-rede do servidor de API pode causar uma falha de provisionamento.
Aviso
Um cluster AKS reserva pelo menos 9 IPs no espaço de endereço da sub-rede. A falta de endereços IP pode impedir o dimensionamento do servidor de API e causar uma interrupção do servidor de API.
Criar um grupo de recursos
- Crie um grupo de recursos usando o
az group createcomando.
az group create --location <location> --name <resource-group>
Criar uma rede virtual
Crie uma rede virtual usando o
az network vnet createcomando.az network vnet create --name <vnet-name> \ --resource-group <resource-group> \ --location <location> \ --address-prefixes 172.19.0.0/16Crie uma sub-rede do servidor de API usando o
az network vnet subnet createcomando.az network vnet subnet create --resource-group <resource-group> \ --vnet-name <vnet-name> \ --name <apiserver-subnet-name> \ --delegations Microsoft.ContainerService/managedClusters \ --address-prefixes 172.19.0.0/28Crie uma sub-rede de cluster usando o
az network vnet subnet createcomando.az network vnet subnet create --resource-group <resource-group> \ --vnet-name <vnet-name> \ --name <cluster-subnet-name> \ --address-prefixes 172.19.1.0/24
Criar uma identidade gerenciada e dar-lhe permissões na rede virtual
Crie uma identidade gerenciada usando o
az identity createcomando.az identity create --resource-group <resource-group> --name <managed-identity-name> --location <location>Atribua a função de Colaborador de Rede à sub-rede do servidor de API usando o
az role assignment createcomando.az role assignment create --scope <apiserver-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>Atribua a função de Colaborador de Rede à sub-rede do cluster usando o
az role assignment createcomando.az role assignment create --scope <cluster-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>
Implantar um cluster público
Implante um cluster AKS público com integração da VNet do API Server usando o comando
az aks createcom a opção--enable-api-server-vnet-integration.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-apiserver-vnet-integration \ --vnet-subnet-id <cluster-subnet-resource-id> \ --apiserver-subnet-id <apiserver-subnet-resource-id> \ --assign-identity <managed-identity-resource-id> \ --generate-ssh-keys
Implantar um cluster privado
Implante um cluster AKS privado com integração VNet do API Server usando o comando
az aks createcom os sinalizadores--enable-api-server-vnet-integratione--enable-private-cluster.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-private-cluster \ --enable-apiserver-vnet-integration \ --vnet-subnet-id <cluster-subnet-resource-id> \ --apiserver-subnet-id <apiserver-subnet-resource-id> \ --assign-identity <managed-identity-resource-id> \ --generate-ssh-keys
Converter um cluster AKS existente para Integração de VNet com o Servidor de API
Aviso
A integração de VNet do API Server é um recurso unidirecional e sensível à capacidade.
É necessário reiniciar manualmente.
Depois de habilitar a integração VNet do API Server usandoaz aks update --enable-apiserver-vnet-integration, deve-se reiniciar de imediato o cluster para que a alteração surta efeito. Esta reinicialização não é automatizada. Atrasar a reinicialização aumenta o risco de a capacidade ficar indisponível, o que pode impedir que o servidor de API seja iniciado.A capacidade é validada, mas não reservada.
O AKS valida a capacidade regional quando você habilita o recurso em um cluster existente, mas essa validação não reserva capacidade. Se a reinicialização estiver atrasada e a capacidade ficar indisponível nesse meio tempo, o cluster poderá falhar ao iniciar após uma parada ou reinicialização. Os clusters que habilitaram esse recurso antes da disponibilidade geral (GA), ou que ainda não foram reiniciados desde a habilitação, não passarão pela validação de capacidade.O recurso não pode ser desativado.
Uma vez ativado, o recurso é permanente. Não é possível desativar a integração de VNet do API Server.
Essa atualização executa uma atualização de versão da imagem de nó em todos os pools de nó e reinicia todas as cargas de trabalho enquanto elas passam por uma atualização progressiva de imagem.
Aviso
A conversão de um cluster para a integração de rede virtual do API Server resulta em uma alteração do endereço IP do servidor de API, embora o nome do host permaneça o mesmo. Se o endereço IP do servidor de API tiver sido configurado em quaisquer firewalls ou regras de grupo de segurança de rede, essas regras talvez precisem ser atualizadas.
Atualize seu cluster para API Server VNet Integration usando o
az aks updatecomando com o--enable-apiserver-vnet-integrationsinalizador.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-apiserver-vnet-integration \ --apiserver-subnet-id <apiserver-subnet-resource-id>
Habilitar ou desabilitar o modo de cluster privado em um cluster existente com a integração de rede virtual do API Server
Os clusters AKS configurados com a integração de rede virtual do API Server podem ter o modo de acesso à rede pública/cluster privado ativado ou desativado sem reimplantar o cluster. O nome de host do servidor de API não é alterado, mas as entradas DNS públicas são modificadas ou removidas, se necessário.
Nota
--disable-private-cluster está atualmente em pré-visualização. Para obter mais informações, consulte Níveis de referência e suporte.
Ativar o modo de cluster privado
Habilite o modo de cluster privado usando o comando
az aks updatecom a flag--enable-private-cluster.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-private-cluster
Desativar o modo de cluster privado
Desative o modo de cluster privado usando o comando
az aks updatecom o flag--disable-private-cluster.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --disable-private-cluster
Ligar ao cluster com o kubectl
Configure
kubectlpara se conectar ao cluster usando o comandoaz aks get-credentials.az aks get-credentials --resource-group <resource-group> --name <cluster-name>
Expor o servidor de API através do Private Link
Você pode expor o endpoint do servidor de API de um cluster privado utilizando a Integração do Servidor de API com VNet através do Azure Private Link. As etapas a seguir mostram como criar um PLS (Serviço de Link Privado) na VNet do cluster e conectar-se a ele a partir de outra VNet ou assinatura usando um Ponto de Extremidade Privado.
Criar um cluster privado de Integração de VNet do API Server
Crie um cluster AKS privado com a integração VNet do API Server usando o comando
az aks createjunto com as flags--enable-api-server-vnet-integratione--enable-private-cluster.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --enable-private-cluster \ --enable-apiserver-vnet-integration
Para obter mais orientações sobre como configurar o Private Link with API Server VNet Integration, consulte Private Link with API Server VNet Integration.
Regras de segurança NSG
Todo o tráfego dentro da VNet é permitido por padrão. Mas se você adicionou regras do NSG para restringir o tráfego entre sub-redes diferentes, certifique-se de que as regras de segurança do NSG permitam os seguintes tipos de comunicação:
| Destino | Origem | Protocolo | Porta | Utilizar |
|---|---|---|---|---|
| APIServer Sub-rede CIDR | Sub-rede do cluster | TCP | 443 e 4443 | Necessário para habilitar a comunicação entre nós e o servidor de API. |
| APIServer Sub-rede CIDR | Azure Load Balancer | TCP | 9988 | Necessário para habilitar a comunicação entre o Azure Load Balancer e o servidor de API. Você também pode habilitar todas as comunicações entre o Balanceador de Carga do Azure e o CIDR de Sub-rede do Servidor de API. |
Próximos passos
- Para obter as melhores práticas associadas, consulte Práticas recomendadas para conectividade de rede e segurança no AKS.
- Para obter orientação sobre como configurar o link privado com a integração de VNet do API Server, consulte Link privado com integração de VNet do API Server.