Compartilhar via


Estabelecer conectividade de rede com um cluster privado do AKS (Serviço de Kubernetes do Azure)

Em clusters privados do AKS, o ponto de extremidade do servidor de API não tem endereço IP público. Para gerenciar o servidor de API, você precisa usar uma VM (máquina virtual) ou um contêiner que tenha acesso à rede virtual (VNet) do cluster do AKS. Existem várias opções para estabelecer a conectividade de rede com o cluster privado:

Escolher uma opção de conectividade

O Azure Cloud Shell e o Azure Bastion (versão prévia) são as opções mais fáceis. As VPNs e a Rota Expressa adicionam custos e exigem complexidade de rede extra. O emparelhamento de rede virtual exige que você planeje os intervalos de CIDR de rede para garantir que não haja intervalos sobrepostos.

A tabela a seguir descreve as principais diferenças e limitações do uso do Azure Cloud Shell e do Azure Bastion:

Opção Azure Cloud Shell Azure Bastion (versão prévia)
Principais diferenças • Acesso efêmero baseado em navegador.
• Econômico.
• Vem com ferramentas pré-instaladas como az cli e kubectl.
• Acesso persistente e duradouro.
• Adequado para gerenciar vários clusters.
• Use suas próprias ferramentas de cliente nativas.
Limitações • Não há suporte para clusters automáticos do AKS ou clusters com bloqueio de grupo de recursos de rede (NRG).
• Você não pode ter várias sessões do Cloud Shell em VNets diferentes ao mesmo tempo.
• Não há suporte para clusters do AKS automáticos ou clusters com bloqueio NRG.

Conectar-se usando o Azure Cloud Shell

Conectar-se a um cluster do AKS privado por meio do Azure Cloud Shell requer a conclusão das seguintes etapas:

  • Implantar recursos necessários: Você precisa implantar o Cloud Shell em uma VNet que possa alcançar seu cluster privado. Esta etapa provisiona a infraestrutura necessária. Embora o Cloud Shell seja um serviço gratuito, o uso do Cloud Shell em uma VNet requer alguns recursos que incorrem em custo. Para obter mais informações, consulte Implantar o Cloud Shell em uma rede virtual.
  • Configure a conexão: Depois de implantar os recursos, qualquer usuário na assinatura que tenha permissões apropriadas no cluster poderá configurar o Cloud Shell para implantar na VNet para permitir uma conexão segura com o cluster privado.

Implantar recursos necessários

Para implantar e configurar os recursos necessários, você deve ter a atribuição de função proprietário na assinatura. Para exibir e atribuir funções, consulte Listar Proprietários de uma Assinatura.

Você pode implantar os recursos necessários usando o portal do Azure ou o modelo do ARM fornecido se você gerenciar a infraestrutura como código ou tiver políticas organizacionais que exijam convenções de nomenclatura de recursos específicas.

Opcionalmente, você pode deixar os recursos implantados em vigor para conexões futuras ou excluí-los e recriá-los conforme necessário.

Usar o portal do Azure (versão prévia)

Essa opção cria uma VNet separada, com todos os recursos necessários para o Cloud Shell, além de configurar o Emparelhamento VNET para você.

  1. No portal do Azure, navegue até o recurso de cluster privado.
  2. Na página Visão geral, selecione Conectar.
  3. Na guia Cloud Shell , em Pré-requisitos para conexão de cluster privado, selecione Configurar para implantar os recursos necessários.
    • A implantação cria um novo grupo de recursos chamado RG-CloudShell-PrivateClusterConnection-{RANDOM_ID}.
  4. Depois que a implantação for bem-sucedida, em Definir contexto de cluster, selecione Abrir Cloud Shell.

Captura de tela do portal do Azure na página de recursos de um cluster privado mostrando o botão Conectar com a guia Cloud Shell selecionada.

Observação

Se você já configurou o Cloud Shell em uma VNet para um cluster específico, repetir essas etapas garante que as configurações de usuário do Cloud Shell estejam alinhadas corretamente com essa VNet.

Use um modelo ARM

Para ter mais controle sobre a configuração de implantação, use o modelo do ARM fornecido.

Você pode implantar o Cloud Shell na mesma VNet que o seu cluster privado AKS, utilizando uma sub-rede dedicada, ou pode implantar em uma nova VNet e conectar-se por meio de emparelhamento de VNet.

Configurar a conexão com o cluster privado

Depois de implantar os recursos necessários, qualquer usuário na assinatura poderá configurar seu Cloud Shell para implantar na VNet fornecida usando as etapas em Configurar o Cloud Shell para usar uma rede virtual.

Verifique se o usuário tem acesso apropriado no nível do Kubernetes para se conectar com êxito ao cluster privado. Para obter mais informações, consulte as opções de acesso e identidade do AKS (Serviço de Kubernetes do Azure).

Conectar usando o Azure Bastion (versão prévia)

O Azure Bastion é um serviço de PaaS totalmente gerenciado que você provisiona para se conectar com segurança a recursos privados por meio de endereços IP privados. Para usar o recurso de túnel de cliente nativo do Bastion, consulte Conectar-se ao cluster privado do AKS usando o Azure Bastion.

Conectar-se usando o emparelhamento de rede virtual (VNet)

Para usar o emparelhamento VNet, você precisa configurar um vínculo entre a VNet e a zona do DNS privado. Você pode configurar o peering de VNet usando o Azure Portal ou o Azure CLI.

Use o portal do Azure

  1. No portal do Azure, navegue até o grupo de recursos do nó e selecione o recurso de zona DNS privada.

  2. No menu de serviço, em Gerenciamento de DNS, selecione Adicionar Links de> Rede Virtual.

  3. Na página Adicionar Link de Rede Virtual , defina as seguintes configurações:

    • Nome do link: insira um nome para o link de rede virtual.
    • Rede Virtual: selecione a rede virtual que contém a VM.
  4. Selecione Criar para criar o link de rede virtual.

  5. Navegue até o grupo de recursos que contém a rede virtual do cluster do AKS e selecione seu recurso de rede virtual.

  6. No menu de serviço, em Configurações, selecione Emparelhamentos>Adicionar.

  7. Na página Adicionar emparelhamento, defina as seguintes configurações:

    • Nome do link de pareamento: insira um nome para o link de pareamento.
    • Rede virtual: selecione a rede virtual da VM.
  8. Selecione Adicionar para criar o link de emparelhamento.

Para obter mais informações, consulte Emparelhamento de rede virtual.

Usar a CLI do Azure

  1. Crie um novo link para adicionar a rede virtual da VM à zona DNS privada usando o comando az network private-dns link vnet create.

    az network private-dns link vnet create \
        --name <new-link-name> \
        --resource-group <node-resource-group-name> \
        --zone-name <private-dns-zone-name> \
        --virtual-network <vm-virtual-network-resource-id> \
        --registration-enabled false
    
  2. Crie um emparelhamento entre a rede virtual da VM e a rede virtual do grupo de recursos do nó usando o comando az network vnet peering create.

    az network vnet peering create \
        --name <new-peering-name-1> \
        --resource-group <vm-virtual-network-resource-group-name> \
        --vnet-name <vm-virtual-network-name> \
        --remote-vnet <node-resource-group-virtual-network-resource-id> \
        --allow-vnet-access
    
  3. Crie um segundo emparelhamento entre a rede virtual do grupo de recursos de nó e a rede virtual do grupo da VM usando o comando az network vnet peering create.

    az network vnet peering create \
        --name <new-peering-name-2> \
        --resource-group <node-resource-group-name> \
        --vnet-name <node-resource-group-virtual-network-name> \
        --remote-vnet <vm-virtual-network-resource-id> \
        --allow-vnet-access
    
  4. Liste os emparelhamentos de rede virtual que você criou usando o comando az network vnet peering list.

    az network vnet peering list \
        --resource-group <node-resource-group-name> \
        --vnet-name <private-dns-zone-name>
    

Usar uma conexão de ponto de extremidade privado

Um ponto de extremidade privado pode ser configurado para que uma VNet não precise ser emparelhada para se comunicar com o cluster privado. Para configurar uma conexão de ponto de extremidade privado, primeiro você cria um novo ponto de extremidade privado na rede virtual que contém os recursos de consumo e, em seguida, cria um link entre sua rede virtual e uma nova zona DNS privada na mesma rede.

Importante

Se a rede virtual estiver configurada com servidores DNS personalizados, você precisará configurar o DNS privado adequadamente para o ambiente. Para obter mais informações, consulte a documentação de resolução de nomes de rede virtual.

Criar um recurso de ponto de extremidade privado

  1. Na home page do portal do Azure, selecione Criar um recurso.

  2. Pesquise o ponto de extremidade privado e selecione Criar>Ponto de Extremidade Privado.

  3. Selecione Criar.

  4. Na guia Básico, configure os seguintes valores:

    • Detalhes do projeto

      • Assinatura: selecione a assinatura em que o cluster privado está localizado.
      • Grupo de recursos: selecione o grupo de recursos que contém sua rede virtual.
    • Detalhes da instância

      • Nome: insira um nome para seu ponto de extremidade privado, como myPrivateEndpoint.
      • Região: selecione a mesma região que sua rede virtual.
  5. Selecione Avançar: Recurso e defina as seguintes configurações:

    • Método de conexão: selecione Conectar-se a um recurso do Azure em meu diretório.
    • Assinatura: selecione a assinatura em que o cluster privado está localizado.
    • Tipo de recurso: Selecione Microsoft.ContainerService/managedClusters.
    • Recurso: selecione seu cluster privado.
    • Sub-recurso de destino: selecione o gerenciamento.
  6. Selecione Avançar: Rede Virtual e defina as seguintes configurações:

    • Relacionamento em Rede
      • Rede virtual: selecione sua rede virtual.
      • Sub-rede: selecione sua sub-rede.
  7. Selecione Avançar: DNS>Avançar: Marcas e (opcionalmente) configurar valores-chave conforme necessário.

  8. Selecione Avançar: Examinar + criar>Criar.

Depois que o recurso for criado, registre o endereço IP privado do ponto de extremidade privado para uso futuro.

Criar uma zona DNS privada

Depois de criar o ponto de extremidade privado, crie uma nova zona DNS privada com o mesmo nome da zona DNS privada criada pelo cluster privado. Lembre-se de criar essa zona DNS na VNet que contém os recursos de consumo.

  1. No portal do Azure, navegue até o grupo de recursos do nó e selecione o recurso de zona DNS privada.

  2. No menu de serviço, em Gerenciamento de DNS, selecione Conjuntos de Registros e observe o seguinte:

    • O nome da zona DNS privada, que segue o padrão *.privatelink.<region>.azmk8s.io.
    • O nome do registro A (excluindo o nome DNS privado).
    • A vida útil (TTL).
  3. Na home page do portal do Azure, selecione Criar um recurso.

  4. Pesquise a zona DNS privada e selecione Criar>zona DNS privada.

  5. Na guia Básico, configure os seguintes valores:

    • Detalhes do projeto

      • Selecione sua Assinatura.
      • Selecione o grupo de recursos no qual você criou o ponto de extremidade privado.
    • Detalhes da instância

      • Nome: insira o nome da zona DNS recuperada das etapas anteriores.
      • Região: usa como padrão a localização do grupo de recursos.
  6. Selecione Examinar + criar>Criar.

Criar um registro A

Depois que a zona DNS privada for criada, crie um A registro que associe o ponto de extremidade privado ao cluster privado.

  1. Navegue até o recurso de zona DNS privada.

  2. No menu de serviço, em Gerenciamento de DNS, selecione Adicionar Conjuntos de> Registros.

  3. Na página Adicionar conjunto de registros , defina as seguintes configurações:

    • Nome: insira o nome recuperado do A registro na zona DNS do cluster privado.
    • Tipo: Selecionar A – Registro de endereço.
    • TTL: insira o número do A registro na zona DNS do cluster privado.
    • Unidade TTL: altere o valor do menu suspenso para corresponder ao do registro A da zona DNS do cluster privado.
    • Endereço IP: insira o endereço IP do ponto de extremidade privado que você criou.
  4. Selecione Adicionar para criar o A registro.

Importante

Ao criar o registro A, use apenas o nome e não o nome de domínio totalmente qualificado (FQDN).

Depois que o A registro for criado, vincule a zona DNS privada à rede virtual que acessará o cluster privado.

  1. Navegue até o recurso de zona DNS privada.

  2. No menu de serviço, em Gerenciamento de DNS, selecione Adicionar Links de> Rede Virtual.

  3. Na página Adicionar Link de Rede Virtual , defina as seguintes configurações:

    • Nome do link: insira um nome para o link de rede virtual.
    • Assinatura: selecione a assinatura em que o cluster privado está localizado.
    • Rede Virtual: selecione a rede virtual do cluster privado.
  4. Selecione Criar para criar o link.

    Pode levar alguns minutos para a operação ser concluída. Depois que o link de rede virtual for criado, você poderá acessá-lo na guia Links de Rede Virtual que você usou na etapa 2.

Aviso

  • Se o cluster privado for interrompido e reiniciado, o serviço de link privado original do cluster privado será removido e recriado, o que interromperá a conexão entre seu ponto de extremidade privado e o cluster privado. Para resolver esse problema, exclua e recrie todos os pontos de extremidade privados criados pelo usuário vinculados ao cluster privado. Se os pontos de extremidade privados recriados tiverem novos endereços IP, você também precisará atualizar os registros DNS.
  • Se você atualizar os registros de DNS na zona de DNS privado, verifique se o host do qual você está tentando se conectar está usando os registros de DNS atualizados. Você pode verificar isso usando o comando nslookup. Se você perceber que as atualizações não estão refletidas na saída, talvez seja necessário liberar o cache de DNS em seu computador e tentar novamente.

Criar uma VM na mesma rede virtual

Para criar uma VM na mesma VNet do cluster do AKS privado, use o comando az vm create com o sinalizador --vnet-name para especificar a VNet.

az vm create \
    --resource-group <resource-group-name> \
    --name <vm-name> \
    --image <image-name> \
    --vnet-name <vm-virtual-network-name> \
    --subnet <subnet-name> \
    --admin-username <admin-username> \
    --admin-password <admin-password>

Usar uma rota expressa ou uma conexão VPN

Para usar uma rota expressa ou uma conexão VPN, consulte Sobre gateways de rede virtual do ExpressRoute.

Usar o recurso AKS command invoke

Para usar o recurso do AKS command invoke para se conectar a um cluster privado, consulte Acessar um cluster privado usando command invoke.

Para obter mais informações sobre clusters privados no AKS, consulte Criar um cluster privado do AKS (Serviço de Kubernetes do Azure).