Partilhar via


Prepare 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 Serviço Kubernetes do Azure (AKS) Edge Essentials.

Nota

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 aninhadas não são suportadas para cenários de produção e estão limitadas aos propósitos do desenvolvedor. Este guia pressupõe que você esteja usando o hipervisor Hyper-V. Não suportamos o uso de um hipervisor que não seja da Microsoft, como o KVM.

Pré-requisitos

Implantação em VM do Windows no VMware ESXi

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

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

  1. Crie uma máquina virtual Windows no host VMware ESXi. Para obter mais informações sobre a implantação de VMs VMware, consulte VMware - Deploying Virtual Machines.

Nota

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 VM do Windows 11, consulte Instalando o Windows 11 como um sistema operacional convidado no VMware.

  1. Desligue a máquina virtual criada na etapa anterior.
  2. Selecione a máquina virtual do Windows e, em seguida, Editar configurações.
  3. Procure por Virtualização de hardware e ative Expor virtualização assistida por hardware ao SO convidado.
  4. Selecione Salvar e inicie a máquina virtual.
  5. Instale o hipervisor Hyper-V. Se estiver a utilizar o cliente Windows, certifique-se de que instala o Hyper-V no Windows 10. Se estiver a utilizar o Windows Server, certifique-se de que instala 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 Unidade de Computação do Azure (ACU) que ofereça suporte à virtualização aninhada. Para obter mais informações, consulte Unidade de computação do Azure (ACU). Além disso, as VMs do Azure não suportam o uso de um comutador virtual externo, portanto, as implantações do AKS Edge Essentials sobre o sistema operacional host da VM são limitadas a clusters de máquina única.

Ambiente de implementação

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

  • L0 Host OS: Sistema operacional host Windows. Este sistema operacional pode ser executado 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 L0 do Windows. Esta 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 L1 Windows.

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 mudar 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 AKS Edge Essentials no Windows é 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.

Gorjeta

Se você estiver usando comutadores virtuais externos para a implantação, certifique-se de usar os adaptadores de rede e 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 Level Parent Memória Endereço IP
SO anfitrião Windows Windows L0 - 32/64 GB 172.20.1.1
Windows-VM-1 Windows L1 SO anfitrião Windows 8/16 GB 172.20.1.2
Windows-VM-2 Windows L1 SO anfitrião 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 com privilégios elevados.

  2. Crie um comutador virtual interno:

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

    Se você criou o switch corretamente, você deve 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 SO anfitrião Windows utiliza este endereço IP do comutador virtual para comunicar com as outras máquinas virtuais e com 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 comutador 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 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 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. Habilite a falsificação 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 elevada do PowerShell.

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

    ipconfig
    

    Deverá ver algo semelhante ao resultado seguinte:

    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:

    Gorjeta

    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 suas máquinas 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 Matriz de requisitos e suporte do AKS Edge Essentials:

    Install-AksEdgeHostFeatures
    
  16. Crie o arquivo de configuração de implantação completa 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 a 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 completa 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. Ping AKS-Edge-VM-1 da máquina virtual Windows-VM-1 :

    ping 172.20.1.4
    
  20. Ping AKS-Edge-VM-1 do sistema operacional host Windows:

    ping 172.20.1.4
    

    Aviso

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

  21. Dentro do Windows-VM-1, obtenha o arquivo JSON scaleConfig para 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 do 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 do 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, revise a configuração de IP e solucione problemas de conexões de rede.

  24. Configure a máquina virtual Windows-VM-2 seguindo o procedimento Prepare your machines for 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 Matriz de requisitos e suporte do AKS Edge Essentials:

    Install-AksEdgeHostFeatures
    
  26. Conecte-se à máquina virtual Windows-VM-1 e, usando uma sessão elevada do PowerShell, obtenha a configuração de associação de cluster 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 Dimensionamento em várias máquinas.

  28. Implante o AKS-Edge-VM-2 no 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 estiver configurado corretamente, você verá ambos os nós 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-
    

    Nota

    Para obter uma lista das versões do Kubernetes atualmente suportadas em K3s e K8s, consulte a tabela em Download AKS Edge Essentials.

Próximos passos