Préparer votre environnement de virtualisation imbriqué pour AKS Edge Essentials

Cet article explique comment configurer un environnement de virtualisation imbriqué pour déployer un cluster Azure Kubernetes Service (AKS) Edge Essentials.

Remarque

Le déploiement d’AKS Edge Essentials sur un environnement de virtualisation imbriqué sur VMware ESXi est pris en charge. D’autres déploiements de virtualisation imbriqués ne sont pas pris en charge pour les scénarios de production et sont limités aux besoins des développeurs. Ce guide suppose que vous utilisez l’hyperviseur Hyper-V. Nous ne prenons pas en charge l’utilisation d’un hyperviseur non-Microsoft, tel que KVM.

Prérequis

Déploiement sur une machine virtuelle Windows sur VMware ESXi

Les versions VMware ESXi 7.0 et 8.0 peuvent héberger AKS Edge Essentials sur une machine virtuelle Windows.

Pour configurer AKS Edge Essentials sur une machine virtuelle Windows VMware ESXi, procédez comme suit :

  1. Créez une machine virtuelle Windows sur l’hôte VMware ESXi. Pour plus d’informations sur le déploiement de machines virtuelles VMware, consultez VMware - Déploiement de machines virtuelles.

Remarque

Si vous créez une machine virtuelle Windows 11, vérifiez qu’elle répond aux exigences minimales requises par Microsoft pour exécuter Windows 11. Pour plus d’informations sur la prise en charge de la machine virtuelle Windows 11 VMware, consultez Installation de Windows 11 en tant que système d’exploitation invité sur VMware.

  1. Désactivez la machine virtuelle créée à l’étape précédente.
  2. Sélectionnez la machine virtuelle Windows, puis Modifier les paramètres.
  3. Recherchez Virtualisation matérielle et activez Exposer la virtualisation assistée par le matériel sur le système d’exploitation invité.
  4. Sélectionnez Enregistrer, puis démarrez la machine virtuelle.
  5. Installez l’hyperviseur Hyper-V. Si vous utilisez un client Windows, veillez à Installer Hyper-V sur Windows 10. Si vous utilisez Windows Server, veillez à installer le rôle Hyper-V.

Déploiement sur des machines virtuelles Azure

Si vous exécutez AKS Edge Essentials sur une machine virtuelle Azure, veillez à utiliser une unité de calcul Azure (ACU) qui prend en charge la virtualisation imbriquée. Pour plus d’informations, consultez l’unité de calcul Azure (ACU). En outre, les machines virtuelles Azure ne prennent pas en charge l’utilisation d’un commutateur virtuel externe. Les déploiements AKS Edge Essentials au-dessus du système d’exploitation hôte de machine virtuelle sont limités aux clusters à machine unique.

Environnement de déploiement

Cette section décrit l’architecture imbriquée, mettant en évidence les principaux composants et la configuration nécessaires. Les niveaux de virtualisation décrits plus loin dans cet article sont les suivants :

  • Système d’exploitation hôte L0 : système d’exploitation hôte Windows. Ce système d’exploitation peut exécuter nu ou en tant que machine virtuelle, mais dans cet article, le système d’exploitation hôte L0 est celui qui crée les machines virtuelles Windows L1 imbriquées.
  • Machine virtuelle L1 : machine virtuelle Windows s’exécutant sur le système d’exploitation hôte L0 Windows. Cette machine virtuelle dispose de l’installation d’AKS Edge Essentials.
  • Machine virtuelle L2 : machine virtuelle imbriquée AKS Edge Essentials (Linux ou Windows) s’exécutant sur la machine virtuelle Windows L1.

Vous pouvez configurer un environnement imbriqué à l’aide d’un commutateur virtuel interne ou externe. Toutefois, cet article suppose que vous utilisez un commutateur virtuel interne. Les adresses IP de la machine Windows L0 et des machines virtuelles L1/L2 peuvent changer en fonction du scénario de mise en réseau. Cet article suppose que vous utilisez la famille d’adresses IP 172.20.1.0/24 .

En outre, le déploiement de nœuds Windows AKS Edge Essentials est facultatif et a un impact sur vos besoins en mémoire attribués. Cet article décrit un déploiement Linux uniquement, mais vous pouvez ajouter vos nœuds Windows en ajoutant la configuration appropriée aux fichiers JSON de déploiement.

Conseil

Si vous utilisez des commutateurs virtuels externes pour le déploiement, veillez à utiliser les cartes réseau et les allocations d’adresses IP appropriées.

Diagramme montrant l’architecture de virtualisation imbriquée.

Le diagramme précédent montre les différentes machines virtuelles et composants de cette architecture imbriquée.

Appareil/machine virtuelle Système d’exploitation Niveau Parent Mémoire Adresse IP
Système d’exploitation hôte Windows Windows L0 - 32/64 Go 172.20.1.1
Windows-VM-1 Windows L1 Système d’exploitation hôte Windows 8/16 Go 172.20.1.2
Windows-VM-2 Windows L1 Système d’exploitation hôte Windows 8/16 Go 172.20.1.3
AKS-Edge-Linux-VM-1 CBL-Mariner L2 Windows-VM-1 4 Go 172.20.1.4
AKS-Edge-Windows-VM-1 (facultatif) Windows L2 Windows-VM-1 4 Go 172.20.1.5
AKS-Edge-Linux-VM-2 CBL-Mariner L2 Windows-VM-2 4 Go 172.20.1.6
AKS-Edge-Windows-VM-2 (facultatif) Windows L2 Windows-VM-2 4 Go 172.20.1.7

Configurer des machines virtuelles imbriquées

Le guide suivant est un exemple d’allocation d’adresses IP. Vous pouvez utiliser votre propre allocation en fonction de votre environnement réseau et des exigences. Les conventions d’affectation de noms pour les machines virtuelles et les affectations de matériel virtuel sont également suggérées, mais vous pouvez utiliser votre propre configuration.

  1. Ouvrez une session PowerShell avec élévation de privilèges.

  2. Créez un commutateur virtuel interne :

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

    Si vous avez créé le commutateur correctement, vous devez voir quelque chose de similaire à la sortie suivante :

    Name    SwitchType NetAdapterInterfaceDescription
    ----    ---------- ------------------------------
    AKS-Int Internal
    
  3. Affectez une adresse IP au commutateur virtuel AKS-Int . Cet exemple utilise le réseau 172.20.1.0/24 . Le système d’exploitation hôte Windows utilise cette adresse IP de commutateur virtuel pour communiquer avec les autres machines virtuelles et les nœuds AKS Edge Essentials :

    $ifIndex = (Get-NetAdapter -Name "vEthernet (AKS-Int)").ifIndex
    New-NetIPAddress –IPAddress "172.20.1.1" -PrefixLength "24" -InterfaceIndex $ifIndex
    
  4. Créez une table NAT pour connecter le commutateur virtuel interne et les appareils connectés au réseau interne avec le réseau externe/Internet :

     New-NetNat -Name "AKS-EE-Int-Network" -InternalIPInterfaceAddressPrefix "172.20.1.0/24"
    
  5. À l’aide du Gestionnaire Hyper-V, créez la première machine virtuelle Windows et nommez-la Windows-VM-1. Pour plus d’informations sur la création de machines virtuelles, consultez virtualisation de Windows Server. Pendant la configuration de la machine virtuelle, veillez à configurer correctement les paramètres suivants :

    • Processeurs : nombre de processeurs virtuels : 4
    • Mémoire : RAM : 8192 Mo
    • Carte réseau : commutateur virtuel : AKS-Int
  6. Une fois l’installation et la configuration de Windows terminées, désactivez votre machine virtuelle Windows-VM-1 .

  7. Activez la virtualisation imbriquée pour Windows-VM-1. Pour plus d’informations sur la virtualisation imbriquée, consultez Exécuter Hyper-V dans une machine virtuelle avec la virtualisation imbriquée :

    Set-VMProcessor -VMName <windows-vm-name> -ExposeVirtualizationExtensions $true
    
  8. Activer l’usurpation MAC pour Windows-VM-1 :

    Get-VMNetworkAdapter -VMName <windows-vm-name> | Set-VMNetworkAdapter -MacAddressSpoofing On
    
  9. Activez la machine virtuelle Windows-VM-1 et connectez-vous à l’aide de l’option Hyper-V Connect .

  10. À l’intérieur de la machine virtuelle Windows-VM-1 , ouvrez une session PowerShell avec élévation de privilèges.

  11. Vérifiez les adaptateurs connectés à la machine virtuelle. Recherchez le nom de l’adaptateur <>Ethernet connecté. Par exemple, Ethernet 2 :

    ipconfig
    

    Vous devez obtenir un graphique similaire à la sortie suivante :

    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. Obtenez l’ifIndex de l’adaptateur Ethernet avec le nom de l’étape précédente :

    $ifIndex = (Get-NetAdapter -Name "<name>").ifIndex
    
  13. Configurez l’adresse IP statique 172.20.1.2 et l’adresse IP de passerelle 172.20.1.1 et DNS Server 172.20.1.1 :

    Conseil

    Si vous utilisez une machine virtuelle Azure, utilisez le serveur DNS du système d’exploitation hôte Windows (L0 ). Utilisez la ipconfig /all commande pour obtenir l’adresse du serveur DNS. Vérifiez que vous êtes en mesure d’accéder à Internet à l’aide de votre navigateur web. Si vous n’avez pas d’accès, vérifiez si le serveur DNS est correctement configuré :

    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. Configurez la machine virtuelle Windows-VM-1 , en suivant la procédure Préparer vos machines pour AKS Edge Essentials .

  15. Installez tous les prérequis AKS Edge Essentials pour la machine virtuelle Windows-VM-1 . Pour plus d’informations sur les conditions préalables requises, consultez les exigences et la matrice de prise en charge d’AKS Edge Essentials :

    Install-AksEdgeHostFeatures
    
  16. Créez le fichier de configuration de déploiement à grande échelle AKS Edge Essentials. Une fois le json créé, ajoutez les paramètres requis. Veillez à modifier la carte réseau pour la création de commutateur virtuel externe, le serveur DNS, la mémoire affectée et les adresses IP statiques correctes. Pour plus d’informations, consultez Déploiements Kubernetes complets dans AKS Edge Essentials :

    New-AksEdgeConfig -NodeType Linux -DeploymentType ScalableCluster
    
  17. Déployez le déploiement à grande échelle AKS Edge Essentials à l’aide du fichier JSON de configuration créé à l’étape précédente :

    New-AksEdgeDeployment -JsonConfigFilePath .\AksEdgeDeployConfigTemplate.json
    
  18. Activez le trafic ICMP ping sur la machine virtuelle AKS-Edge-VM-1 :

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -command "sudo iptables -A INPUT -p ICMP -j ACCEPT"
    
  19. Ping AKS-Edge-VM-1 à partir de la machine virtuelle Windows-VM-1 :

    ping 172.20.1.4
    
  20. Ping AKS-Edge-VM-1 à partir du système d’exploitation hôte Windows :

    ping 172.20.1.4
    

    Avertissement

    Si les requêtes ping adressées à la machine virtuelle AKS-Edge-VM-1 échouent, passez en revue la configuration IP et résolvez les problèmes liés aux connexions réseau.

  21. Dans Windows-VM-1, obtenez le fichier JSON scaleConfig à utiliser dans Windows-VM-2 :

     New-AksEdgeScaleConfig -NodeType Linux -ScaleType AddMachine -LinuxNodeIp <VM2-Linux-Node-IP>
    
  22. Créez la machine virtuelle Windows-VM-2 . Répétez les étapes 4 à 14 avec les nouveaux paramètres Windows-VM-2 :

    • Nom de la machine virtuelle : Windows-VM-2
    • Adresse IP : 172.20.1.3
    • Processeurs : nombre de processeurs virtuels : 4
    • Mémoire : 8192 Mo
    • Carte réseau (commutateur virtuel) : AKS-Int
    • Adresse de la passerelle IP : 172.20.1.1
    • Adresse du serveur DNS : 172.20.1.1
  23. Testez le test ping de Windows-VM-2 vers AKS-Edge-VM-1 :

    ping 172.20.1.4
    

    Avertissement

    Si les requêtes ping adressées à AKS-Edge-VM-1 échouent, passez en revue la configuration IP et résolvez les problèmes de connexions réseau.

  24. Configurez la machine virtuelle Windows-VM-2 en suivant la procédure Préparer vos machines pour AKS Edge Essentials .

  25. Installez tous les prérequis AKS Edge Essentials pour la machine virtuelle Windows-VM-2 . Pour plus d’informations sur les conditions préalables requises, consultez les exigences et la matrice de prise en charge d’AKS Edge Essentials :

    Install-AksEdgeHostFeatures
    
  26. Connectez-vous à la machine virtuelle Windows-VM-1 et à l’aide d’une session PowerShell avec élévation de privilèges, obtenez la configuration de jointure de cluster AKS Edge :

    New-AksEdgeScaleConfig -NodeType Linux -ScaleType AddMachine -LinuxNodeIp <AKS-Edge-Linux-VM-2>
    
  27. Copiez le fichier de configuration identique AKS Edge Essentials à partir de Windows-VM-1 et modifiez-le avec les paramètres appropriés. Pour plus d’informations, consultez Scale-out sur plusieurs machines.

  28. Déployez AKS-Edge-VM-2 sur Window-VM-2 à l’aide du fichier JSON de configuration identique à l’étape précédente :

    New-AksEdgeDeployment -JsonConfigFilePath <scale-config-json>
    
  29. Vérifiez que le nœud a été ajouté au cluster. Sur n’importe quel nœud du cluster, exécutez l’applet de commande suivante :

    kubectl get nodes
    

    Si tout a été correctement configuré, vous devez voir les deux nœuds Linux s’exécutant dans votre 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-
    

    Remarque

    Pour obtenir la liste des versions Kubernetes actuellement prises en charge sur K3s et K8s, consultez le tableau dans Télécharger AKS Edge Essentials.

Étapes suivantes