Condividi tramite


Preparare l'ambiente di virtualizzazione annidato per AKS Edge Essentials

Questo articolo descrive come configurare un ambiente di virtualizzazione annidato per distribuire un cluster Edge Essentials di servizio Azure Kubernetes (AKS).

Nota

La distribuzione di AKS Edge Essentials in un ambiente di virtualizzazione annidato in VMware ESXi è supportata. Altre distribuzioni di virtualizzazione annidate non sono supportate per gli scenari di produzione e sono limitate agli scopi di sviluppo. Questa guida presuppone che si stia usando l'hypervisor Hyper-V. Non è supportato l'uso di un hypervisor non Microsoft, ad esempio KVM.

Prerequisiti

Distribuzione in una macchina virtuale Windows in VMware ESXi

Le versioni di VMware ESXi 7.0 e 8.0 possono ospitare AKS Edge Essentials su una macchina virtuale Windows.

Per configurare AKS Edge Essentials in una macchina virtuale Windows VMware ESXi, seguire questa procedura:

  1. Creare una macchina virtuale Windows nell'host VMware ESXi. Per altre informazioni sulla distribuzione di macchine virtuali VMware, vedere VMware - Distribuzione di Macchine virtuali.

Nota

Se stai creando una macchina virtuale Windows 11, assicurati che soddisfi i requisiti minimi di Microsoft per eseguire Windows 11. Per altre informazioni sul supporto VMware per macchine virtuali Windows 11, vedere Installazione di Windows 11 come sistema operativo guest in VMware.

  1. Disattivare la macchina virtuale creata nel passaggio precedente.
  2. Selezionare la macchina virtuale Windows e quindi Modificare le impostazioni.
  3. Cercare Virtualizzazione hardware e attivare Esporre la virtualizzazione assistita dall'hardware al sistema operativo guest.
  4. Selezionare Salva e avviare la macchina virtuale.
  5. Installare l'hypervisor Hyper-V. Se si usa il client Windows, assicurarsi di installare Hyper-V in Windows 10. Se si usa Windows Server, assicurarsi di installare il ruolo Hyper-V.

Distribuzione in macchine virtuali di Azure

Se si esegue AKS Edge Essentials sopra una macchina virtuale di Azure, assicurarsi di usare un'unità di calcolo di Azure che supporta la virtualizzazione annidata. Per altre informazioni, vedere Unità di calcolo di Azure.For more information, see Azure Compute Unit (ACU). Inoltre, le macchine virtuali di Azure non supportano l'uso di un commutatore virtuale esterno, quindi le distribuzioni di AKS Edge Essentials in cima al sistema operativo host della macchina virtuale sono limitate ai cluster a computer singoli.

Ambiente di distribuzione

Questa sezione descrive l'architettura annidata, evidenziando i componenti principali e la configurazione necessari. I livelli di virtualizzazione descritti più avanti in questo articolo sono:

  • Sistema operativo host L0: sistema operativo host Windows. Questo sistema operativo può eseguire bare metal o come macchina virtuale, ma in questo articolo il sistema operativo host L0 è quello che crea le macchine virtuali Windows L1 annidate.
  • Macchina virtuale L1: macchina virtuale Windows in esecuzione su sistema operativo host Windows L0. Questa macchina virtuale include l'installazione di Azure Kubernetes Edge Essentials.
  • Macchina virtuale L2: vm annidata (Linux o Windows) del servizio Azure Kubernetes Edge Essentials in esecuzione nella macchina virtuale Windows L1.

È possibile configurare un ambiente annidato usando un commutatore virtuale interno o esterno. Tuttavia, questo articolo presuppone che si stia usando un commutatore virtuale interno. Gli indirizzi IP delle macchine virtuali L0 Windows e L1/L2 possono cambiare a seconda dello scenario di rete. Questo articolo presuppone che si stia usando la famiglia di indirizzi IP 172.20.1.0/24 .

Inoltre, la distribuzione dei nodi Windows di Azure Kubernetes Edge Essentials è facoltativa e influisce sui requisiti di memoria assegnati. Questo articolo descrive una distribuzione solo Linux, ma è possibile aggiungere i nodi Windows aggiungendo la configurazione appropriata ai file JSON di distribuzione.

Suggerimento

Se si usano commutatori virtuali esterni per la distribuzione, assicurarsi di usare le schede di rete e le allocazioni di indirizzi IP corrette.

Diagramma che mostra l'architettura di virtualizzazione annidata.

Il diagramma precedente mostra le diverse macchine virtuali e i diversi componenti di questa architettura nidificata.

Dispositivo/macchina virtuale Sistema operativo Livello Parent Memoria Indirizzo IP
Sistema operativo host Windows Finestre L0 - 32/64 GB 172.20.1.1
Windows-VM-1 Finestre L1 Sistema operativo host Windows 8/16 GB 172.20.1.2
Windows-VM-2 Finestre L1 Sistema operativo host Windows 8/16 GB 172.20.1.3
Servizio Azure Kubernetes-Edge-Linux-VM-1 CBL-Mariner L2 Windows-VM-1 4 GB 172.20.1.4
Servizio Azure Kubernetes-Edge-Windows-VM-1 (facoltativo) Finestre L2 Windows-VM-1 4 GB 172.20.1.5
Servizio Azure Kubernetes-Edge-Linux-VM-2 CBL-Mariner L2 Windows-VM-2 4 GB 172.20.1.6
Servizio Azure Kubernetes-Edge-Windows-VM-2 (facoltativo) Finestre L2 Windows-VM-2 4 GB 172.20.1.7

Configurare le macchine virtuali annidate

La guida seguente è un esempio di allocazione di indirizzi IP. È possibile usare la propria allocazione in base all'ambiente di rete e ai requisiti. Sono suggerite anche convenzioni di denominazione per le macchine virtuali e le assegnazioni di hardware virtuale, ma è possibile usare la propria configurazione.

  1. Aprire una sessione di PowerShell con privilegi elevati.

  2. Creare un commutatore virtuale interno:

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

    Se l'opzione è stata creata correttamente, verrà visualizzato un risultato simile all'output seguente:

    Name    SwitchType NetAdapterInterfaceDescription
    ----    ---------- ------------------------------
    AKS-Int Internal
    
  3. Assegnare un indirizzo IP al commutatore virtuale servizio Azure Kubernetes-Int . Questo esempio usa la rete 172.20.1.0/24 . Il sistema operativo host Windows usa questo indirizzo IP del commutatore virtuale per comunicare con le altre macchine virtuali e i nodi Edge Essentials del servizio Azure Kubernetes:

    $ifIndex = (Get-NetAdapter -Name "vEthernet (AKS-Int)").ifIndex
    New-NetIPAddress –IPAddress "172.20.1.1" -PrefixLength "24" -InterfaceIndex $ifIndex
    
  4. Creare una tabella NAT per connettere il commutatore virtuale interno e i dispositivi connessi alla rete interna con la rete esterna/Internet:

     New-NetNat -Name "AKS-EE-Int-Network" -InternalIPInterfaceAddressPrefix "172.20.1.0/24"
    
  5. Usando la console di gestione di Hyper-V, creare la prima macchina virtuale Windows e denominarla Windows-VM-1. Per altre informazioni sulla creazione di macchine virtuali, vedere Virtualizzazione di Windows Server. Durante la configurazione della macchina virtuale, assicurarsi di configurare correttamente i parametri seguenti:

    • Processori: numero di processori virtuali: 4
    • Memoria: RAM: 8192 MB
    • Scheda di rete: commutatore virtuale: servizio Azure Kubernetes-Int
  6. Al termine dell'installazione e della configurazione di Windows, disattivare la macchina virtuale Windows-VM-1 .

  7. Abilitare la virtualizzazione annidata per Windows-VM-1. Per altre informazioni sulla virtualizzazione annidata, vedere Eseguire Hyper-V in una macchina virtuale con virtualizzazione annidata:

    Set-VMProcessor -VMName <windows-vm-name> -ExposeVirtualizationExtensions $true
    
  8. Abilitare lo spoofing MAC per Windows-VM-1:

    Get-VMNetworkAdapter -VMName <windows-vm-name> | Set-VMNetworkAdapter -MacAddressSpoofing On
    
  9. Attivare la macchina virtuale Windows-VM-1 e connettersi usando l'opzione Connessione Hyper-V.

  10. All'interno della macchina virtuale Windows-VM-1 aprire una sessione di PowerShell con privilegi elevati.

  11. Controllare gli adattatori connessi alla macchina virtuale. Cercare il nome della scheda Ethernet connessa<>. Ad esempio, Ethernet 2:

    ipconfig
    

    Verrà visualizzata una schermata simile all'output seguente:

    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. Ottenere l'ifIndex della scheda Ethernet con il nome del passaggio precedente:

    $ifIndex = (Get-NetAdapter -Name "<name>").ifIndex
    
  13. Configurare l'indirizzo IP statico 172.20.1.2 e l'IP del gateway 172.20.1.1 e DNS Server 172.20.1.1:

    Suggerimento

    Se si usa una macchina virtuale di Azure, usare il server DNS del sistema operativo host Windows (L0). Usare il ipconfig /all comando per ottenere l'indirizzo del server DNS. Verificare di essere in grado di ottenere l'accesso a Internet usando il Web browser. Se non si ha accesso, verificare se il server DNS è configurato correttamente:

    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. Configurare la macchina virtuale Windows-VM-1 , seguendo la procedura Preparare i computer per AKS Edge Essentials .

  15. Installare tutti i prerequisiti di Azure Kubernetes Edge Essentials per la macchina virtuale Windows-VM-1 . Per altre informazioni sui prerequisiti, vedere Requisiti e matrice di supporto per Edge del servizio Azure Kubernetes:

    Install-AksEdgeHostFeatures
    
  16. Creare il file di configurazione della distribuzione con scalabilità completa del servizio Azure Kubernetes Edge Essentials. Dopo aver creato il codice JSON, aggiungere i parametri necessari. Assicurarsi di modificare la scheda di rete per la creazione di commutatori virtuali esterni, il server DNS, la memoria assegnata e gli indirizzi IP statici corretti. Per altre informazioni, vedere Distribuzioni di Kubernetes complete in Azure Kubernetes Edge Essentials:

    New-AksEdgeConfig -NodeType Linux -DeploymentType ScalableCluster
    
  17. Distribuire la distribuzione a scalabilità completa di Edge Essentials del servizio Azure Kubernetes usando il file JSON di configurazione creato nel passaggio precedente:

    New-AksEdgeDeployment -JsonConfigFilePath .\AksEdgeDeployConfigTemplate.json
    
  18. Abilitare il ping del traffico ICMP nella macchina virtuale AKS-Edge-VM-1 :

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -command "sudo iptables -A INPUT -p ICMP -j ACCEPT"
    
  19. Eseguire il ping del servizio Azure Kubernetes-Edge-VM-1 dalla macchina virtuale Windows-VM-1:

    ping 172.20.1.4
    
  20. Eseguire il ping del servizio Azure Kubernetes-Edge-VM-1 dal sistema operativo host Windows:

    ping 172.20.1.4
    

    Avviso

    Se le richieste ping alla macchina virtuale AKS-Edge-VM-1 hanno esito negativo, esaminare la configurazione IP e risolvere i problemi relativi alle connessioni di rete.

  21. All'interno di Windows-VM-1, ottenere il file JSON scaleConfig da usare in Windows-VM-2:

     New-AksEdgeScaleConfig -NodeType Linux -ScaleType AddMachine -LinuxNodeIp <VM2-Linux-Node-IP>
    
  22. Creare la macchina virtuale Windows-VM-2 . Ripetere i passaggi da 4 a 14 con i nuovi parametri di Windows-VM-2 :

    • Nome macchina virtuale: Windows-VM-2
    • Indirizzo IP: 172.20.1.3
    • Processori: numero di processori virtuali: 4
    • Memoria: 8192 MB
    • Scheda di rete (commutatore virtuale): servizio Azure Kubernetes-Int
    • Indirizzo del gateway IP: 172.20.1.1
    • Indirizzo server DNS: 172.20.1.1
  23. Testare il ping da Windows-VM-2 a AKS-Edge-VM-1:

    ping 172.20.1.4
    

    Avviso

    Se le richieste ping al servizio Azure Kubernetes-Edge-VM-1 hanno esito negativo, esaminare la configurazione IP e risolvere i problemi relativi alle connessioni di rete.

  24. Configurare la macchina virtuale Windows-VM-2 seguendo la procedura Preparare i computer per AKS Edge Essentials .

  25. Installare tutti i prerequisiti di Azure Kubernetes Edge Essentials per la macchina virtuale Windows-VM-2 . Per altre informazioni sui prerequisiti, vedere Requisiti e matrice di supporto per Edge del servizio Azure Kubernetes:

    Install-AksEdgeHostFeatures
    
  26. Connettersi alla macchina virtuale Windows-VM-1 e usare una sessione di PowerShell con privilegi elevati, ottenere la configurazione dell'aggiunta al cluster edge del servizio Azure Kubernetes:

    New-AksEdgeScaleConfig -NodeType Linux -ScaleType AddMachine -LinuxNodeIp <AKS-Edge-Linux-VM-2>
    
  27. Copiare il file di configurazione del servizio Azure Kubernetes Edge Essentials da Windows-VM-1 e modificarlo con i parametri appropriati. Per altre informazioni, vedere Aumento del numero di istanze in più computer.

  28. Distribuire AKS-Edge-VM-2 in Window-VM-2 usando il file JSON di configurazione della scalabilità del passaggio precedente:

    New-AksEdgeDeployment -JsonConfigFilePath <scale-config-json>
    
  29. Verificare che il nodo sia stato aggiunto al cluster. In qualsiasi nodo del cluster eseguire il cmdlet seguente:

    kubectl get nodes
    

    Se tutto è stato configurato correttamente, verranno visualizzati entrambi i nodi Linux in esecuzione nel 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

    Per un elenco delle versioni kubernetes attualmente supportate sia in K3s che in K8s, vedere la tabella in Scaricare AKS Edge Essentials.

Passaggi successivi