Criar um cluster do Serviço Kubernetes do Azure com integração de VNet do Servidor de API (Visualização)
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 em uma sub-rede delegada na rede virtual 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 integrados não VNet, os nós do agente sempre se comunicam diretamente com o endereço IP privado do IP do ILB (balanceador de carga interno) 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.
Disponibilidade da região
A Integração VNet do Servidor de API está disponível em todas as regiões globais do Azure.
Pré-requisitos
- CLI do Azure com extensão aks-preview 0.5.97 ou posterior.
- Se estiver usando ARM ou a API REST, a versão da API AKS deve ser 2022-04-02-preview ou posterior.
Instalar a extensão aks-preview da CLI do Azure
Importante
Os recursos de visualização do AKS estão disponíveis em uma base de autosserviço e opt-in. 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 visualizações do AKS são parcialmente cobertas pelo suporte ao cliente com base no melhor esforço. Como tal, estas funcionalidades não se destinam a utilização em produção. Para obter mais informações, consulte os seguintes artigos de suporte:
Instale a extensão aks-preview usando o
az extension add
comando.az extension add --name aks-preview
Atualize para a versão mais recente da extensão lançada usando o
az extension update
comando.az extension update --name aks-preview
Registre o sinalizador de recurso 'EnableAPIServerVnetIntegrationPreview'
Registre o
EnableAPIServerVnetIntegrationPreview
sinalizador de recurso usando oaz feature register
comando.az feature register --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
Leva alguns minutos para que o status mostre Registrado.
Verifique o status do registro usando o
az feature show
comando:az feature show --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
Quando o status refletir Registrado, atualize o registro do provedor de recursos Microsoft.ContainerService usando o
az provider register
comando.az provider register --namespace Microsoft.ContainerService
Criar um cluster AKS com integração de VNet do Servidor de API usando VNet gerenciada
Você pode configurar seus clusters AKS com a integração de VNet do API Server em VNet gerenciada ou trazer seu próprio modo 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 create
comando.az group create --location westus2 --name <resource-group>
Implantar um cluster público
Implante um cluster AKS público com integração de VNet do API Server para VNet gerenciada usando o
az aks create
comando com o--enable-api-server-vnet-integration
sinalizador.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 gerenciada usando o
az aks create
comando com os--enable-api-server-vnet-integration
sinalizadores e--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 de VNet do API Server usando traga sua própria VNet
Ao usar traga sua própria VNet, você deve criar e delegar uma sub-rede do servidor API ao Microsoft.ContainerService/managedClusters
, que concede ao serviço AKS permissões para injetar os pods do servidor 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 para a sub-rede do servidor de API e para a sub-rede 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 create
comando.
az group create --location <location> --name <resource-group>
Criar uma rede virtual
Crie uma rede virtual usando o
az network vnet create
comando.az network vnet create --name <vnet-name> \ --resource-group <resource-group> \ --location <location> \ --address-prefixes 172.19.0.0/16
Crie uma sub-rede do servidor de API usando o
az network vnet subnet create
comando.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/28
Crie uma sub-rede de cluster usando o
az network vnet subnet create
comando.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 create
comando.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 create
comando.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 create
comando.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 VNet do API Server usando o
az aks create
comando com o--enable-api-server-vnet-integration
sinalizador.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
az aks create
comando com os--enable-api-server-vnet-integration
sinalizadores e--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 em integração de VNet do Servidor de API
Você pode converter clusters AKS públicos/privados existentes em clusters de integração de VNet do Servidor de API fornecendo uma sub-rede de servidor de API que atenda aos requisitos listados anteriormente. Esses requisitos incluem: na mesma VNet que os nós do cluster, permissões concedidas para a identidade do cluster AKS, não usadas por outros recursos, como ponto de extremidade privado, e tamanho de pelo menos /28. A conversão do cluster é uma migração unidirecional. Os clusters não podem ter a integração de VNet do Servidor de API desabilitada depois de habilitada.
Essa atualização executa uma atualização de versão de imagem de nó em todos os pools de nós e reinicia todas as cargas de trabalho enquanto elas passam por uma atualização de imagem contínua.
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 update
comando com o--enable-apiserver-vnet-integration
sinalizador.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
az aks update
comando com o--enable-private-cluster
sinalizador.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
az aks update
comando com o--disable-private-cluster
sinalizador.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --disable-private-cluster
Ligar ao cluster com o kubectl
Configure
kubectl
para se conectar ao cluster usando oaz aks get-credentials
comando.az aks get-credentials --resource-group <resource-group> --name <cluster-name>
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 de cluster | TCP | 443.º e 4443.º | Necessário para habilitar a comunicação entre nós e o servidor de API. |
APIServer Sub-rede CIDR | Balanceador de Carga do Azure | 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.
Azure Kubernetes Service