Compartilhar via


Preparar seu ambiente de virtualização aninhado para o AKS Edge Essentials

Este artigo descreve como configurar um ambiente de virtualização aninhado para implantar um cluster do Azure Kubernetes Service (AKS) Edge Essentials.

Observação

Há suporte para a implantação do AKS Edge Essentials em um ambiente de virtualização aninhado no VMware ESXi. Outras implantações de virtualização aninhada não têm suporte para cenários de produção e são limitadas a fins de desenvolvedor. Este guia pressupõe que você esteja usando o hipervisor Hyper-V. Não oferecemos suporte ao uso de um hipervisor que não seja da Microsoft, como o KVM.

Pré-requisitos

Implantação na VM do Windows no VMware ESXi

As versões 7.0 e 8.0 do VMware ESXi podem hospedar o AKS Edge Essentials sobre uma máquina virtual do Windows.

Para configurar o AKS Edge Essentials em uma máquina virtual do Windows VMware ESXi, use as seguintes etapas:

  1. Crie uma máquina virtual do Windows no host do VMware ESXi. Para obter mais informações sobre a implantação da VM do VMware, confira VMware – Implantação das Máquinas Virtuais.

Observação

Se você estiver criando uma máquina virtual do Windows 11, verifique se ela atende aos requisitos mínimos da Microsoft para executar o Windows 11. Para obter mais informações sobre o suporte ao VMware da VM do Windows 11, confira Instalar Windows 11 como sistema operacional convidado no VMware.

  1. Desative a máquina virtual criada na etapa anterior.
  2. Selecione a máquina virtual do Windows e a opção Editar configurações.
  3. Procure Virtualização de hardware e ative a opção Expor virtualização assistida por hardware para o sistema operacional convidado.
  4. Selecione Salvar e inicie a máquina virtual.
  5. Instale o hipervisor Hyper-V. Se você estiver usando o cliente Windows, instale o Hyper-V no Windows 10. Se você estiver usando o Windows Server, instale a função Hyper-V.

Implantação em máquinas virtuais do Azure

Se você estiver executando o AKS Edge Essentials sobre uma VM do Azure, certifique-se de usar uma ACU (Unidade de Computação do Azure) que dê suporte à virtualização aninhada. Para obter mais informações, consulte ACU (Unidade de Computação do Azure). Além disso, as VMs do Azure não dão suporte ao uso de um comutador virtual externo, portanto, as implantações do AKS Edge Essentials sobre o sistema operacional do host da VM são limitadas a clusters de computador único.

Ambiente de implantação

Esta seção descreve a arquitetura aninhada, destacando os principais componentes e a configuração necessária. Os níveis de virtualização descritos posteriormente neste artigo são:

  • Sistema operacional host L0: sistema operacional host Windows. Esse sistema operacional pode estar executando bare-metal ou como uma máquina virtual, mas neste artigo, o sistema operacional host L0 é aquele que cria as VMs L1 do Windows aninhadas.
  • Máquina Virtual L1: VM do Windows em execução sobre o sistema operacional host do Windows L0. Essa VM tem a instalação do AKS Edge Essentials.
  • Máquina Virtual L2: VM aninhada do AKS Edge Essentials (Linux ou Windows) em execução sobre a máquina virtual do Windows L1.

Você pode configurar um ambiente aninhado usando um comutador virtual interno ou externo. No entanto, este artigo pressupõe que você esteja usando um comutador virtual interno. Os endereços IP da máquina Windows L0 e das máquinas virtuais L1/L2 podem ser alterados dependendo do cenário de rede. Este artigo pressupõe que você esteja usando a família de endereços IP 172.20.1.0/24 .

Além disso, a implantação de nós do Windows do AKS Edge Essentials é opcional e afeta os requisitos de memória atribuídos. Este artigo descreve uma implantação somente Linux, mas você pode adicionar seus nós do Windows adicionando a configuração apropriada aos arquivos JSON de implantação.

Dica

Se você estiver usando comutadores virtuais externos para a implantação, certifique-se de usar os adaptadores de rede e as alocações de endereços IP corretos.

Diagrama mostrando a arquitetura de virtualização aninhada.

O diagrama anterior mostra as diferentes máquinas virtuais e componentes dessa arquitetura aninhada.

Dispositivo/VM SO Nível Pai Memória Endereço IP
Sistema operacional host Windows Windows L0 - 32/64 GB 172.20.1.1
Windows-VM-1 Windows L1 Sistema operacional host Windows 8/16 GB 172.20.1.2
Windows-VM-2 Windows L1 Sistema operacional host Windows 8/16 GB 172.20.1.3
AKS-Edge-Linux-VM-1 CBL-Mariner L2 Windows-VM-1 4 GB 172.20.1.4
AKS-Edge-Windows-VM-1 (opcional) Windows L2 Windows-VM-1 4 GB 172.20.1.5
AKS-Edge-Linux-VM-2 CBL-Mariner L2 Windows-VM-2 4 GB 172.20.1.6
AKS-Edge-Windows-VM-2 (opcional) Windows L2 Windows-VM-2 4 GB 172.20.1.7

Configurar máquinas virtuais aninhadas

O guia a seguir é um exemplo de alocação de endereço IP. Você pode usar sua própria alocação com base em seu ambiente de rede e requisitos. Convenções de nomenclatura para máquinas virtuais e atribuições de hardware virtual também são sugeridas, mas você pode usar sua própria configuração.

  1. Abra uma sessão do PowerShell elevada.

  2. Crie um comutador virtual interno:

    New-VMSwitch -Name "AKS-Int" -SwitchType Internal
    

    Se você criou o switch corretamente, deverá ver algo semelhante à seguinte saída:

    Name    SwitchType NetAdapterInterfaceDescription
    ----    ---------- ------------------------------
    AKS-Int Internal
    
  3. Atribua um endereço IP ao comutador virtual AKS-Int . Este exemplo usa a rede 172.20.1.0/24 . O sistema operacional host do Windows usa esse endereço IP do comutador virtual para se comunicar com as outras máquinas virtuais e os nós do AKS Edge Essentials:

    $ifIndex = (Get-NetAdapter -Name "vEthernet (AKS-Int)").ifIndex
    New-NetIPAddress –IPAddress "172.20.1.1" -PrefixLength "24" -InterfaceIndex $ifIndex
    
  4. Crie uma tabela NAT para conectar o switch virtual interno e os dispositivos conectados à rede interna com a rede externa/Internet:

     New-NetNat -Name "AKS-EE-Int-Network" -InternalIPInterfaceAddressPrefix "172.20.1.0/24"
    
  5. Usando o Gerenciador do Hyper-V, crie a primeira máquina virtual do Windows e nomeie-a Windows-VM-1. Para obter mais informações sobre a criação de máquinas virtuais, consulte Virtualização do Windows Server. Durante a configuração da VM, certifique-se de configurar corretamente os seguintes parâmetros:

    • Processadores: Número de processadores virtuais: 4
    • Memória: RAM: 8192 MB
    • Adaptador de rede: Comutador virtual: AKS-Int
  6. Quando a instalação e a configuração do Windows estiverem concluídas, desligue a máquina virtual Windows-VM-1 .

  7. Habilite a virtualização aninhada para Windows-VM-1. Para obter mais informações sobre a virtualização aninhada, consulte Executar o Hyper-V em uma máquina virtual com virtualização aninhada:

    Set-VMProcessor -VMName <windows-vm-name> -ExposeVirtualizationExtensions $true
    
  8. Ative a falsificação de MAC para Windows-VM-1:

    Get-VMNetworkAdapter -VMName <windows-vm-name> | Set-VMNetworkAdapter -MacAddressSpoofing On
    
  9. Ligue a máquina virtual Windows-VM-1 e conecte-se usando a opção Hyper-V Connect .

  10. Dentro da máquina virtual Windows-VM-1 , abra uma sessão do PowerShell com privilégios elevados.

  11. Verifique os adaptadores conectados à máquina virtual. Procure o nome do adaptador <>Ethernet conectado. Por exemplo, Ethernet 2:

    ipconfig
    

    Você deverá ver algo semelhante à seguinte saída:

    PS C:\Windows\system32> ipconfig
    
    Windows IP Configuration
    
    Ethernet adapter Ethernet 2:
    
       Connection-specific DNS Suffix  . : mshome.net
       Link-local IPv6 Address . . . . . : fe80::f4b3:63b3:20d0:2e60%12
       Autoconfiguration IPv4 Address. . : 169.254.233.233
       Subnet Mask . . . . . . . . . . . : 255.255.0.0
       Default Gateway . . . . . . . . . :
    
    Ethernet adapter vEthernet (Default Switch):
    
       Connection-specific DNS Suffix  . :
       Link-local IPv6 Address . . . . . : fe80::545e:7d5:812b:c17b%18
       IPv4 Address. . . . . . . . . . . : 172.21.144.1
       Subnet Mask . . . . . . . . . . . : 255.255.240.0
       Default Gateway . . . . . . . . . :
    
  12. Obtenha o ifIndex do adaptador Ethernet com o nome da etapa anterior:

    $ifIndex = (Get-NetAdapter -Name "<name>").ifIndex
    
  13. Configure o IP estático 172.20.1.2 e o IP do gateway 172.20.1.1 e o servidor DNS 172.20.1.1:

    Dica

    Se você estiver usando uma VM do Azure, use o servidor DNS do sistema operacional host do Windows (L0). Use o ipconfig /all comando para obter o endereço do servidor DNS. Verifique se você consegue obter acesso à Internet usando seu navegador da web. Se você não tiver acesso, verifique se o servidor DNS está configurado corretamente:

    New-NetIPAddress –IPAddress "172.20.1.2" -DefaultGateway "172.20.1.1" -PrefixLength "24" -InterfaceIndex $ifIndex
    Set-DNSClientServerAddress –InterfaceIndex $ifIndex –ServerAddresses "172.20.1.1"
    
  14. Configure a máquina virtual Windows-VM-1 , seguindo o procedimento Preparar seus computadores para o AKS Edge Essentials .

  15. Instale todos os pré-requisitos do AKS Edge Essentials para a máquina virtual Windows-VM-1 . Para obter mais informações sobre pré-requisitos, consulte Requisitos do AKS Edge Essentials e matriz de suporte:

    Install-AksEdgeHostFeatures
    
  16. Crie o arquivo de configuração de implantação em grande escala do AKS Edge Essentials. Depois que o JSON for criado, adicione os parâmetros necessários. Certifique-se de alterar o adaptador de rede para criação de comutador virtual externo, servidor DNS, memória atribuída e endereços IP estáticos corretos. Para obter mais informações, consulte Implantações completas do Kubernetes no AKS Edge Essentials:

    New-AksEdgeConfig -NodeType Linux -DeploymentType ScalableCluster
    
  17. Implante a implantação em grande escala do AKS Edge Essentials usando o arquivo JSON de configuração criado na etapa anterior:

    New-AksEdgeDeployment -JsonConfigFilePath .\AksEdgeDeployConfigTemplate.json
    
  18. Habilite o ping do tráfego ICMP na máquina virtual AKS-Edge-VM-1 :

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -command "sudo iptables -A INPUT -p ICMP -j ACCEPT"
    
  19. Faça ping no AKS-Edge-VM-1 da máquina virtual Windows-VM-1 :

    ping 172.20.1.4
    
  20. Faça ping AKS-Edge-VM-1 no sistema operacional host Windows:

    ping 172.20.1.4
    

    Aviso

    Se as solicitações de ping para a VM AKS-Edge-VM-1 falharem, examine a configuração de IP e solucione problemas das conexões de rede.

  21. Dentro do Windows-VM-1, obtenha o arquivo JSON scaleConfig a ser usado no Windows-VM-2:

     New-AksEdgeScaleConfig -NodeType Linux -ScaleType AddMachine -LinuxNodeIp <VM2-Linux-Node-IP>
    
  22. Crie a máquina virtual Windows-VM-2 . Repita as etapas 4 a 14 com os novos parâmetros Windows-VM-2 :

    • Nome da máquina virtual: Windows-VM-2
    • Endereço IP: 172.20.1.3
    • Processadores: Número de processadores virtuais: 4
    • Memória: 8192 MB
    • Adaptador de rede (comutador virtual): AKS-Int
    • Endereço do gateway IP: 172.20.1.1
    • Endereço do servidor DNS: 172.20.1.1
  23. Teste o ping de Windows-VM-2 para AKS-Edge-VM-1:

    ping 172.20.1.4
    

    Aviso

    Se as solicitações de ping para o AKS-Edge-VM-1 falharem, examine a configuração de IP e solucione problemas das conexões de rede.

  24. Configure a máquina virtual Windows-VM-2 , seguindo o procedimento Preparar seus computadores para o AKS Edge Essentials .

  25. Instale todos os pré-requisitos do AKS Edge Essentials para a máquina virtual Windows-VM-2 . Para obter mais informações sobre pré-requisitos, consulte Requisitos do AKS Edge Essentials e matriz de suporte:

    Install-AksEdgeHostFeatures
    
  26. Conecte-se à máquina virtual Windows-VM-1 e, usando uma sessão do PowerShell com privilégios elevados, obtenha a configuração de ingresso no cluster do AKS Edge:

    New-AksEdgeScaleConfig -NodeType Linux -ScaleType AddMachine -LinuxNodeIp <AKS-Edge-Linux-VM-2>
    
  27. Copie o arquivo de configuração de escala do AKS Edge Essentials do Windows-VM-1 e modifique-o com os parâmetros apropriados. Para obter mais informações, consulte Escalar horizontalmente em vários computadores.

  28. Implante AKS-Edge-VM-2 na Window-VM-2 usando o arquivo JSON de configuração de escala da etapa anterior:

    New-AksEdgeDeployment -JsonConfigFilePath <scale-config-json>
    
  29. Valide se o nó foi adicionado ao cluster. Em qualquer nó do cluster, execute o seguinte cmdlet:

    kubectl get nodes
    

    Se tudo foi configurado corretamente, você deverá ver os dois nós do Linux em execução no cluster:

    PS C:\> kubectl get nodes
    NAME                     STATUS   ROLES                       AGE     VERSION
    windows-vm1-ledge        Ready    control-plane,etcd,master   3m45s   v1.24.3+k3s-
    windows-vm2-ledge        Ready    control-plane,etcd,master  10m25s   v1.24.3+k3s-
    

    Observação

    Para obter uma lista das versões do Kubernetes com suporte no K3s e no K8s, consulte a tabela em Baixar o AKS Edge Essentials.

Próximas etapas