Condividi tramite


Preparare l'ambiente di virtualizzazione annidato per Azure Kubernetes 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 Azure Kubernetes Edge Essentials in un ambiente di virtualizzazione annidato in VMware ESXi è supportata per ogni KB2009916 VMware. Altre distribuzioni di virutalizzazione nidificate non sono supportate per scenari di produzione e sono limitate agli scopi degli sviluppatori. Questa guida presuppone che si usi l'hypervisor Hyper-V. Non è supportato l'uso di un hypervisor non Microsoft, ad esempio KVM.

Prerequisiti

Distribuzione nella macchina virtuale Windows in VMware ESXi

Le versioni di VMware ESXi 7.0 e 8.0 possono ospitare AKS Edge Essentials in una macchina virtuale Windows. Per altre informazioni sul supporto della virtualizzazione annidata di VMware ESXi, vedere VMware KB2009916 .

Per configurare Azure Kubernetes Edge Essentials in una macchina virtuale VMware ESXi Windows, 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 si sta creando una macchina virtuale Windows 11, assicurarsi che soddisfi i requisiti minimi di Microsoft per eseguire Windows 11. Per altre informazioni sul supporto di vm VMware 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 Espone virtualizzazione assistita 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 Azure Kubernetes Edge Essentials in una macchina virtuale di Azure, assicurarsi di usare un'unità di calcolo di Azure (ACU) che supporta la virtualizzazione annidata. Per altre informazioni, vedere Unità di calcolo di Azure (ACU). Inoltre, le macchine virtuali di Azure non supportano l'uso di un commutatore virtuale esterno, pertanto le distribuzioni di Azure 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ò essere in esecuzione 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 sopra il sistema operativo host Windows L0. Questa macchina virtuale ha l'installazione di Azure Kubernetes Edge Essentials.
  • Macchina virtuale L2: Azure Kubernetes Edge Essentials (Linux o Windows) annidato 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 usi un commutatore virtuale interno. Gli indirizzi IP della macchina Windows L0 e le macchine virtuali L1/L2 possono cambiare a seconda dello scenario di rete. Questo articolo presuppone che si usi 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 Di 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 corrette e le allocazioni degli indirizzi IP.

Diagramma che mostra l'architettura di virtualizzazione annidata.

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

Dispositivo/macchina virtuale OS Level Parent Memoria Indirizzo IP
Sistema operativo host Windows Windows L0 - 32/64 GB 172.20.1.1
Windows-VM-1 Windows L1 Sistema operativo host Windows 8/16 GB 172.20.1.2
Windows-VM-2 Windows 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) Windows 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) Windows L2 Windows-VM-2 4 GB 172.20.1.7

Configurare macchine virtuali annidate

La guida seguente è un esempio di allocazione degli 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 . In questo esempio viene usata 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'INDIRIZZO 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, controllare se il server DNS è configurato correttamente:

    New-NetIPAddress –IPAddress "172.20.1.2" -DefaultGateway "172.20.1.1" -PrefixLength $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 Il servizio Azure Kubernetes Edge Essentials .

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

    Install-AksEdgeHostFeatures
    
  16. Creare il file di configurazione della distribuzione a scalabilità completa di Edge Essentials del servizio Azure Kubernetes. Dopo aver creato il codice JSON, aggiungere i parametri necessari. Assicurarsi di modificare la scheda di rete per la creazione del commutatore virtuale esterno, il server DNS, la memoria assegnata e gli indirizzi IP statici corretti. Per altre informazioni, vedere Distribuzioni Kubernetes complete in AKS 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. Effettuare il ping del servizio Azure Kubernetes-Edge-VM-1 dalla macchina virtuale Windows-VM-1 :

    ping 172.20.1.4
    
  20. Effettuare 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 delle 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 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 gateway IP: 172.20.1.1
    • Indirizzo server DNS: 172.20.1.1
  23. Testare il ping da Windows-VM-2 al servizio Azure Kubernetes-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 delle connessioni di rete.

  24. Configurare la macchina virtuale Windows-VM-2 seguendo la procedura Preparare le macchine virtuali per Il servizio Azure Kubernetes 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 di Azure Kubernetes Edge Essentials e matrice di supporto:

    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 della scalabilità di AKS 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 il servizio Azure Kubernetes-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, dovrebbero essere 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-
    

Passaggi successivi