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
- Vedere i requisiti di sistema.
- Requisiti del sistema operativo: installare Windows 10/11 IoT Enterprise/Enterprise/Pro nel computer e attivare Windows. È consigliabile usare la versione client 22H2 più recente (build del sistema operativo 19045) o Server 2022 (build del sistema operativo 20348). È possibile scaricare una versione di Windows 10 qui o Windows 11 qui.
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:
- 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.
- Disattivare la macchina virtuale creata nel passaggio precedente.
- Selezionare la macchina virtuale Windows e quindi Modificare le impostazioni.
- Cercare Virtualizzazione hardware e attivare Espone virtualizzazione assistita hardware al sistema operativo guest.
- Selezionare Salva e avviare la macchina virtuale.
- 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.
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.
Aprire una sessione di PowerShell con privilegi elevati.
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
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
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"
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
Al termine dell'installazione e della configurazione di Windows, disattivare la macchina virtuale Windows-VM-1 .
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
Abilitare lo spoofing MAC per Windows-VM-1:
Get-VMNetworkAdapter -VMName <windows-vm-name> | Set-VMNetworkAdapter -MacAddressSpoofing On
Attivare la macchina virtuale Windows-VM-1 e connettersi usando l'opzione Connessione Hyper-V.
All'interno della macchina virtuale Windows-VM-1 aprire una sessione di PowerShell con privilegi elevati.
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 . . . . . . . . . :
Ottenere l'ifIndex della scheda Ethernet con il nome del passaggio precedente:
$ifIndex = (Get-NetAdapter -Name "<name>").ifIndex
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"
Configurare la macchina virtuale Windows-VM-1 seguendo la procedura Preparare i computer per Il servizio Azure Kubernetes Edge Essentials .
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
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
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
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"
Effettuare il ping del servizio Azure Kubernetes-Edge-VM-1 dalla macchina virtuale Windows-VM-1 :
ping 172.20.1.4
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.
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>
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
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.
Configurare la macchina virtuale Windows-VM-2 seguendo la procedura Preparare le macchine virtuali per Il servizio Azure Kubernetes Edge Essentials .
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
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>
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.
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>
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
- Aggiungere carichi di lavoro distribuendo le applicazioni
- Risolvere i problemi di distribuzione
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per