Поделиться через


Подготовка вложенной среды виртуализации для AKS Edge Essentials

В этой статье описывается, как настроить вложенную среду виртуализации для развертывания кластера edge Essentials Служба Azure Kubernetes (AKS).

Примечание.

Развертывание AKS Edge Essentials поверх вложенной среды виртуализации в VMware ESXi поддерживается. Другие вложенные развертывания виртуализации не поддерживаются для рабочих сценариев и ограничены целями разработчика. В этом руководстве предполагается, что вы используете гипервизор Hyper-V. Мы не поддерживаем использование гипервизора, отличного от Майкрософт, например KVM.

Необходимые компоненты

Развертывание на виртуальной машине Windows на VMware ESXi

Версии VMware ESXi 8.0 могут размещать AKS Edge Essentials на виртуальной машине Windows.

Чтобы настроить AKS Edge Essentials на виртуальной машине Windows VMware ESXi, выполните следующие действия.

  1. Создайте виртуальную машину Windows на узле VMware ESXi. Дополнительные сведения о развертывании виртуальных машин VMware см. в статье VMware — развертывание Виртуальные машины.

Примечание.

Если вы создаете виртуальную машину Windows 11, убедитесь, что она соответствует минимальным требованиям корпорации Майкрософт для запуска Windows 11. Дополнительные сведения о поддержке VMware виртуальных машин Windows 11 см. в статье "Установка Windows 11 в качестве гостевой ОС в VMware".

  1. Отключите виртуальную машину, созданную на предыдущем шаге.
  2. Выберите виртуальную машину Windows и измените параметры.
  3. Выполните поиск виртуализации оборудования и включите предоставление аппаратной вспомогательной виртуализации гостевой ОС.
  4. Нажмите кнопку "Сохранить " и запустите виртуальную машину.
  5. Установите гипервизор Hyper-V. Если вы используете клиент Windows, установите Hyper-V в Windows 10. Если вы используете Windows Server, установите роль Hyper-V.

Развертывание на виртуальных машинах Azure

Если вы используете AKS Edge Essentials на виртуальной машине Azure, убедитесь, что вы используете единицу вычислений Azure (ACU), которая поддерживает вложенную виртуализацию. Дополнительные сведения см. в разделе "Единица вычислений Azure" (ACU). Кроме того, виртуальные машины Azure не поддерживают использование внешнего виртуального коммутатора, поэтому развертывания AKS Edge Essentials на вершине ОС узла виртуальной машины ограничены кластерами с одним компьютером.

Среда развертывания

В этом разделе описывается вложенная архитектура, выделение основных компонентов и необходимых конфигураций. Уровни виртуализации, описанные далее в этой статье:

  • Ос узла L0: операционная система узла Windows. Эта ОС может работать без операционной системы или как виртуальная машина, но в этой статье ос узла L0 — это операционная система, которая создает вложенные виртуальные машины Windows L1.
  • Виртуальная машина L1: виртуальная машина Windows, запущенная поверх ОС узла Windows L0. Эта виртуальная машина имеет установку AKS Edge Essentials.
  • Виртуальная машина L2: вложенные виртуальные машины AKS Edge Essentials (Linux или Windows) на виртуальной машине L1 Windows.

Вы можете настроить вложенную среду с помощью внутреннего или внешнего виртуального коммутатора. Однако в этой статье предполагается, что вы используете внутренний виртуальный коммутатор. IP-адреса виртуальных машин Windows L0 и L1/L2 могут изменяться в зависимости от сетевого сценария. В этой статье предполагается, что вы используете семейство IP-адресов 172.20.1.0/24 .

Кроме того, развертывание узлов Windows AKS Edge Essentials является необязательным и влияет на требования к памяти. В этой статье описывается развертывание только для Linux, но вы можете добавить узлы Windows, добавив соответствующую конфигурацию в файлы JSON развертывания.

Совет

Если вы используете внешние виртуальные коммутаторы для развертывания, убедитесь, что вы используете правильные сетевые адаптеры и выделения IP-адресов.

Схема, на которой показана вложенная архитектура виртуализации.

На предыдущей схеме показаны различные виртуальные машины и компоненты этой вложенной архитектуры.

Устройство или виртуальная машина ОС Уровень Parent Память IP-адрес
Ос узла Windows Windows L0 - 32/64 ГБ 172.20.1.1
Windows-VM-1 Windows L1 Ос узла Windows 8/16 ГБ 172.20.1.2
Windows-VM-2 Windows L1 Ос узла Windows 8/16 ГБ 172.20.1.3
AKS-Edge-Linux-VM-1 CBL-Mariner L2 Windows-VM-1 4 ГБ 172.20.1.4
AKS-Edge-Windows-VM-1 (необязательно) Windows L2 Windows-VM-1 4 ГБ 172.20.1.5
AKS-Edge-Linux-VM-2 CBL-Mariner L2 Windows-VM-2 4 ГБ 172.20.1.6
AKS-Edge-Windows-VM-2 (необязательно) Windows L2 Windows-VM-2 4 ГБ 172.20.1.7

Настройка вложенных виртуальных машин

В следующем руководстве приведен пример выделения IP-адресов. Вы можете использовать собственное выделение на основе сетевой среды и требований. Также предлагаются соглашения об именовании виртуальных машин и назначений виртуальных оборудования, но вы можете использовать собственную конфигурацию.

  1. Откройте сеанс PowerShell с повышенными привилегиями.

  2. Создайте внутренний виртуальный коммутатор:

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

    Если вы правильно создали переключатель, вы увидите примерно следующее выходные данные:

    Name    SwitchType NetAdapterInterfaceDescription
    ----    ---------- ------------------------------
    AKS-Int Internal
    
  3. Назначьте IP-адрес виртуальному коммутатору AKS-Int . В этом примере используется сеть 172.20.1.0/24 . Ос узла Windows использует этот IP-адрес виртуального коммутатора для взаимодействия с другими виртуальными машинами и узлами AKS Edge Essentials:

    $ifIndex = (Get-NetAdapter -Name "vEthernet (AKS-Int)").ifIndex
    New-NetIPAddress –IPAddress "172.20.1.1" -PrefixLength "24" -InterfaceIndex $ifIndex
    
  4. Создайте таблицу NAT для подключения внутреннего виртуального коммутатора и внутренних подключенных к сети устройств с внешней или интернет-сетью:

     New-NetNat -Name "AKS-EE-Int-Network" -InternalIPInterfaceAddressPrefix "172.20.1.0/24"
    
  5. С помощью диспетчера Hyper-V создайте первую виртуальную машину Windows и назовите ее Windows-VM-1. Дополнительные сведения о создании виртуальных машин см. в статье о виртуализации Windows Server. Во время настройки виртуальной машины убедитесь, что вы правильно настроили следующие параметры:

    • Процессоры: число виртуальных процессоров: 4
    • Память: ОЗУ: 8192 МБ
    • Сетевой адаптер: виртуальный коммутатор: AKS-Int
  6. После завершения установки и настройки Windows отключите виртуальную машину Windows-VM-1 .

  7. Включите вложенную виртуализацию для Windows-VM-1. Дополнительные сведения о вложенной виртуализации см. в статье Запуск Hyper-V на виртуальной машине с вложенной виртуализацией:

    Set-VMProcessor -VMName <windows-vm-name> -ExposeVirtualizationExtensions $true
    
  8. Включение спуфингов MAC для Windows-VM-1:

    Get-VMNetworkAdapter -VMName <windows-vm-name> | Set-VMNetworkAdapter -MacAddressSpoofing On
    
  9. Включите виртуальную машину Windows-VM-1 и подключитесь с помощью параметра Подключения Hyper-V.

  10. На виртуальной машине Windows-VM-1 откройте сеанс PowerShell с повышенными привилегиями.

  11. Проверьте адаптеры, подключенные к виртуальной машине. Найдите имя подключенного адаптера <>Ethernet. Например, Ethernet 2:

    ipconfig
    

    Должен отобразиться результат, аналогичный следующему:

    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. Получите значение ifIndex адаптера Ethernet с именем из предыдущего шага:

    $ifIndex = (Get-NetAdapter -Name "<name>").ifIndex
    
  13. Настройте статический IP-адрес 172.20.1.2 и IP-адрес шлюза 172.20.1.1 и DNS-сервер 172.20.1.1.

    Совет

    Если вы используете виртуальную машину Azure, используйте DNS-сервер ОС Windows (L0 ). ipconfig /all Используйте команду, чтобы получить DNS-адрес сервера. Убедитесь, что вы можете получить доступ к Интернету с помощью веб-браузера. Если у вас нет доступа, проверьте, правильно ли настроен DNS-сервер:

    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. Настройте виртуальную машину Windows-VM-1 после подготовки компьютеров к процедуре AKS Edge Essentials .

  15. Установите все необходимые компоненты AKS Edge Essentials для виртуальной машины Windows-VM-1 . Дополнительные сведения о предварительных требованиях см. в таблице требований AKS Edge Essentials и матрице поддержки:

    Install-AksEdgeHostFeatures
    
  16. Создайте полномасштабный файл конфигурации развертывания AKS Edge Essentials. После создания JSON добавьте необходимые параметры. Не забудьте изменить сетевой адаптер для создания внешнего виртуального коммутатора, DNS-сервера, назначенного памяти и исправления статических IP-адресов. Дополнительные сведения см. в разделе "Полные развертывания Kubernetes" в AKS Edge Essentials:

    New-AksEdgeConfig -NodeType Linux -DeploymentType ScalableCluster
    
  17. Разверните полномасштабное развертывание AKS Edge Essentials с помощью JSON-файла конфигурации, созданного на предыдущем шаге:

    New-AksEdgeDeployment -JsonConfigFilePath .\AksEdgeDeployConfigTemplate.json
    
  18. Включите трафик ICMP на виртуальной машине AKS-Edge-VM-1 :

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -command "sudo iptables -A INPUT -p ICMP -j ACCEPT"
    
  19. Проверка подлинности AKS-Edge-VM-1 из виртуальной машины Windows-VM-1 :

    ping 172.20.1.4
    
  20. Проверка подлинности AKS-Edge-VM-1 из ос узла Windows:

    ping 172.20.1.4
    

    Предупреждение

    Если запросы связи к виртуальной машине AKS-Edge-VM-1 завершаются ошибкой, проверьте конфигурацию IP-адресов и устраните неполадки сетевых подключений.

  21. В Windows-VM-1 получите JSON-файл scaleConfig для использования в Windows-VM-2:

     New-AksEdgeScaleConfig -NodeType Linux -ScaleType AddMachine -LinuxNodeIp <VM2-Linux-Node-IP>
    
  22. Создайте виртуальную машину Windows-VM-2 . Повторите шаги 4–14 с новыми параметрами Windows-VM-2 :

    • Имя виртуальной машины: Windows-VM-2
    • IP-адрес: 172.20.1.3
    • Процессоры: число виртуальных процессоров: 4
    • Память: 8192 МБ
    • Сетевой адаптер (виртуальный коммутатор): AKS-Int
    • IP-шлюз: 172.20.1.1
    • DNS-сервер: 172.20.1.1
  23. Проверьте связь из Windows-VM-2 в AKS-Edge-VM-1:

    ping 172.20.1.4
    

    Предупреждение

    Если запросы связи к AKS-Edge-VM-1 завершаются ошибкой, проверьте конфигурацию IP-адресов и устраните неполадки с сетевыми подключениями.

  24. Настройте виртуальную машину Windows-VM-2 после подготовки компьютеров к процедуре AKS Edge Essentials .

  25. Установите все необходимые компоненты AKS Edge Essentials для виртуальной машины Windows-VM-2 . Дополнительные сведения о предварительных требованиях см. в таблице требований AKS Edge Essentials и матрице поддержки:

    Install-AksEdgeHostFeatures
    
  26. Подключитесь к виртуальной машине Windows-VM-1 и с помощью сеанса PowerShell с повышенными привилегиями, получите конфигурацию соединения кластера AKS Edge:

    New-AksEdgeScaleConfig -NodeType Linux -ScaleType AddMachine -LinuxNodeIp <AKS-Edge-Linux-VM-2>
    
  27. Скопируйте файл конфигурации масштабирования AKS Edge Essentials из Windows-VM-1 и измените его соответствующими параметрами. Дополнительные сведения см. в статье Масштабирование на нескольких компьютерах.

  28. Разверните AKS-Edge-VM-2 в окне-VM-2 с помощью JSON-файла конфигурации масштабирования на предыдущем шаге:

    New-AksEdgeDeployment -JsonConfigFilePath <scale-config-json>
    
  29. Убедитесь, что узел был добавлен в кластер. На любом узле в кластере выполните следующий командлет:

    kubectl get nodes
    

    Если все было правильно настроено, в кластере должны отображаться оба узла Linux:

    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-
    

    Примечание.

    Список поддерживаемых в настоящее время версий Kubernetes в K3s и K8s см. в таблице скачивания AKS Edge Essentials.

Следующие шаги