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
- Consulte os requisitos do sistema.
- Requisitos do sistema operacional: instale o Windows 10/11 IoT Enterprise / Enterprise / Pro em sua máquina e ative o Windows. Recomendamos usar a versão mais recente do cliente 22H2 (compilação do sistema operacional 19045) ou Server 2022 (compilação do sistema operacional 20348). Você pode baixar uma versão do Windows 10 aqui ou Windows 11 aqui.
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:
- 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.
- Desative a máquina virtual criada na etapa anterior.
- Selecione a máquina virtual do Windows e a opção Editar configurações.
- Procure Virtualização de hardware e ative a opção Expor virtualização assistida por hardware para o sistema operacional convidado.
- Selecione Salvar e inicie a máquina virtual.
- 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.
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.
Abra uma sessão do PowerShell elevada.
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
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
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"
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
Quando a instalação e a configuração do Windows estiverem concluídas, desligue a máquina virtual Windows-VM-1 .
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
Ative a falsificação de MAC para Windows-VM-1:
Get-VMNetworkAdapter -VMName <windows-vm-name> | Set-VMNetworkAdapter -MacAddressSpoofing On
Ligue a máquina virtual Windows-VM-1 e conecte-se usando a opção Hyper-V Connect .
Dentro da máquina virtual Windows-VM-1 , abra uma sessão do PowerShell com privilégios elevados.
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 . . . . . . . . . :
Obtenha o ifIndex do adaptador Ethernet com o nome da etapa anterior:
$ifIndex = (Get-NetAdapter -Name "<name>").ifIndex
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"
Configure a máquina virtual Windows-VM-1 , seguindo o procedimento Preparar seus computadores para o AKS Edge Essentials .
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
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
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
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"
Faça ping no AKS-Edge-VM-1 da máquina virtual Windows-VM-1 :
ping 172.20.1.4
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.
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>
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
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.
Configure a máquina virtual Windows-VM-2 , seguindo o procedimento Preparar seus computadores para o AKS Edge Essentials .
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
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>
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.
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>
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
- Adicionar cargas de trabalho implantando aplicativos
- Solucionar problemas de implantação