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
- Consulte os requisitos do sistema.
- Requisitos do SO: instale o Windows 10/11 IoT Enterprise/Enterprise/Pro no seu computador e ative o Windows. Recomendamos usar a versão mais recente do cliente 22H2 (compilação do sistema operacional 19045) ou o servidor 2022 (compilação do sistema operacional 20348). Você pode baixar uma versão do Windows 10 aqui ou do Windows 11 aqui.
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:
- 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.
- Desligue a máquina virtual criada na etapa anterior.
- Selecione a máquina virtual do Windows e, em seguida, Editar configurações.
- Procure por Virtualização de hardware e ative Expor virtualização assistida por hardware ao SO convidado.
- Selecione Salvar e inicie a máquina virtual.
- 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.
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.
Abra uma sessão do PowerShell com privilégios elevados.
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
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
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"
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 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 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
Habilite a falsificação 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 elevada do PowerShell.
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 . . . . . . . . . :
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:
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"
Configure a máquina virtual Windows-VM-1 seguindo o procedimento Preparar suas máquinas 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 Matriz de requisitos e suporte do AKS Edge Essentials:
Install-AksEdgeHostFeatures
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
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
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"
Ping AKS-Edge-VM-1 da máquina virtual Windows-VM-1 :
ping 172.20.1.4
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.
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>
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
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.
Configure a máquina virtual Windows-VM-2 seguindo o procedimento Prepare your machines for 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 Matriz de requisitos e suporte do AKS Edge Essentials:
Install-AksEdgeHostFeatures
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>
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.
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>
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
- Adicionar cargas de trabalho implantando aplicativos
- Solucionar problemas de implantação