Подготовка вложенной среды виртуализации для AKS Edge Essentials
В этой статье описывается, как настроить вложенную среду виртуализации для развертывания кластера edge Essentials Служба Azure Kubernetes (AKS).
Примечание.
Развертывание AKS Edge Essentials поверх вложенной среды виртуализации в VMware ESXi поддерживается. Другие вложенные развертывания виртуализации не поддерживаются для рабочих сценариев и ограничены целями разработчика. В этом руководстве предполагается, что вы используете гипервизор Hyper-V. Мы не поддерживаем использование гипервизора, отличного от Майкрософт, например KVM.
Необходимые компоненты
- См. требования к системе.
- Требования к ОС: установите Windows 10/11 IoT Enterprise/Enterprise/Pro на компьютере и активируйте Windows. Рекомендуется использовать последнюю версию клиента 22H2 (сборка ОС 19045) или Server 2022 (сборка ОС 20348). Вы можете скачать версию Windows 10 здесь или Windows 11 здесь.
Развертывание на виртуальной машине Windows на VMware ESXi
Версии VMware ESXi 8.0 могут размещать AKS Edge Essentials на виртуальной машине Windows.
Чтобы настроить AKS Edge Essentials на виртуальной машине Windows VMware ESXi, выполните следующие действия.
- Создайте виртуальную машину Windows на узле VMware ESXi. Дополнительные сведения о развертывании виртуальных машин VMware см. в статье VMware — развертывание Виртуальные машины.
Примечание.
Если вы создаете виртуальную машину Windows 11, убедитесь, что она соответствует минимальным требованиям корпорации Майкрософт для запуска Windows 11. Дополнительные сведения о поддержке VMware виртуальных машин Windows 11 см. в статье "Установка Windows 11 в качестве гостевой ОС в VMware".
- Отключите виртуальную машину, созданную на предыдущем шаге.
- Выберите виртуальную машину Windows и измените параметры.
- Выполните поиск виртуализации оборудования и включите предоставление аппаратной вспомогательной виртуализации гостевой ОС.
- Нажмите кнопку "Сохранить " и запустите виртуальную машину.
- Установите гипервизор 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-адресов. Вы можете использовать собственное выделение на основе сетевой среды и требований. Также предлагаются соглашения об именовании виртуальных машин и назначений виртуальных оборудования, но вы можете использовать собственную конфигурацию.
Откройте сеанс PowerShell с повышенными привилегиями.
Создайте внутренний виртуальный коммутатор:
New-VMSwitch -Name "AKS-Int" -SwitchType Internal
Если вы правильно создали переключатель, вы увидите примерно следующее выходные данные:
Name SwitchType NetAdapterInterfaceDescription ---- ---------- ------------------------------ AKS-Int Internal
Назначьте 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
Создайте таблицу NAT для подключения внутреннего виртуального коммутатора и внутренних подключенных к сети устройств с внешней или интернет-сетью:
New-NetNat -Name "AKS-EE-Int-Network" -InternalIPInterfaceAddressPrefix "172.20.1.0/24"
С помощью диспетчера Hyper-V создайте первую виртуальную машину Windows и назовите ее Windows-VM-1. Дополнительные сведения о создании виртуальных машин см. в статье о виртуализации Windows Server. Во время настройки виртуальной машины убедитесь, что вы правильно настроили следующие параметры:
- Процессоры: число виртуальных процессоров: 4
- Память: ОЗУ: 8192 МБ
- Сетевой адаптер: виртуальный коммутатор: AKS-Int
После завершения установки и настройки Windows отключите виртуальную машину Windows-VM-1 .
Включите вложенную виртуализацию для Windows-VM-1. Дополнительные сведения о вложенной виртуализации см. в статье Запуск Hyper-V на виртуальной машине с вложенной виртуализацией:
Set-VMProcessor -VMName <windows-vm-name> -ExposeVirtualizationExtensions $true
Включение спуфингов MAC для Windows-VM-1:
Get-VMNetworkAdapter -VMName <windows-vm-name> | Set-VMNetworkAdapter -MacAddressSpoofing On
Включите виртуальную машину Windows-VM-1 и подключитесь с помощью параметра Подключения Hyper-V.
На виртуальной машине Windows-VM-1 откройте сеанс PowerShell с повышенными привилегиями.
Проверьте адаптеры, подключенные к виртуальной машине. Найдите имя подключенного адаптера <>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 . . . . . . . . . :
Получите значение ifIndex адаптера Ethernet с именем из предыдущего шага:
$ifIndex = (Get-NetAdapter -Name "<name>").ifIndex
Настройте статический 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"
Настройте виртуальную машину Windows-VM-1 после подготовки компьютеров к процедуре AKS Edge Essentials .
Установите все необходимые компоненты AKS Edge Essentials для виртуальной машины Windows-VM-1 . Дополнительные сведения о предварительных требованиях см. в таблице требований AKS Edge Essentials и матрице поддержки:
Install-AksEdgeHostFeatures
Создайте полномасштабный файл конфигурации развертывания AKS Edge Essentials. После создания JSON добавьте необходимые параметры. Не забудьте изменить сетевой адаптер для создания внешнего виртуального коммутатора, DNS-сервера, назначенного памяти и исправления статических IP-адресов. Дополнительные сведения см. в разделе "Полные развертывания Kubernetes" в AKS Edge Essentials:
New-AksEdgeConfig -NodeType Linux -DeploymentType ScalableCluster
Разверните полномасштабное развертывание AKS Edge Essentials с помощью JSON-файла конфигурации, созданного на предыдущем шаге:
New-AksEdgeDeployment -JsonConfigFilePath .\AksEdgeDeployConfigTemplate.json
Включите трафик ICMP на виртуальной машине AKS-Edge-VM-1 :
Invoke-AksEdgeNodeCommand -NodeType "Linux" -command "sudo iptables -A INPUT -p ICMP -j ACCEPT"
Проверка подлинности AKS-Edge-VM-1 из виртуальной машины Windows-VM-1 :
ping 172.20.1.4
Проверка подлинности AKS-Edge-VM-1 из ос узла Windows:
ping 172.20.1.4
Предупреждение
Если запросы связи к виртуальной машине AKS-Edge-VM-1 завершаются ошибкой, проверьте конфигурацию IP-адресов и устраните неполадки сетевых подключений.
В Windows-VM-1 получите JSON-файл scaleConfig для использования в Windows-VM-2:
New-AksEdgeScaleConfig -NodeType Linux -ScaleType AddMachine -LinuxNodeIp <VM2-Linux-Node-IP>
Создайте виртуальную машину 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
Проверьте связь из Windows-VM-2 в AKS-Edge-VM-1:
ping 172.20.1.4
Предупреждение
Если запросы связи к AKS-Edge-VM-1 завершаются ошибкой, проверьте конфигурацию IP-адресов и устраните неполадки с сетевыми подключениями.
Настройте виртуальную машину Windows-VM-2 после подготовки компьютеров к процедуре AKS Edge Essentials .
Установите все необходимые компоненты AKS Edge Essentials для виртуальной машины Windows-VM-2 . Дополнительные сведения о предварительных требованиях см. в таблице требований AKS Edge Essentials и матрице поддержки:
Install-AksEdgeHostFeatures
Подключитесь к виртуальной машине Windows-VM-1 и с помощью сеанса PowerShell с повышенными привилегиями, получите конфигурацию соединения кластера AKS Edge:
New-AksEdgeScaleConfig -NodeType Linux -ScaleType AddMachine -LinuxNodeIp <AKS-Edge-Linux-VM-2>
Скопируйте файл конфигурации масштабирования AKS Edge Essentials из Windows-VM-1 и измените его соответствующими параметрами. Дополнительные сведения см. в статье Масштабирование на нескольких компьютерах.
Разверните AKS-Edge-VM-2 в окне-VM-2 с помощью JSON-файла конфигурации масштабирования на предыдущем шаге:
New-AksEdgeDeployment -JsonConfigFilePath <scale-config-json>
Убедитесь, что узел был добавлен в кластер. На любом узле в кластере выполните следующий командлет:
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.
Следующие шаги
- Добавление рабочих нагрузок путем развертывания приложений
- Устранение неполадок развертывания