Полные развертывания Kubernetes в AKS Edge Essentials
Внимание!
Полное развертывание на нескольких компьютерах в настоящее время является экспериментальной функцией. Мы активно работаем над этой функцией.
Вы можете настроить кластер AKS Edge Essentials для работы на нескольких компьютерах для поддержки архитектуры распределенных микрослужб. AkS Edge Essentials предназначен для статических конфигураций и не включает динамическое создание и удаление виртуальных машин, а также управление жизненным циклом кластера, в отличие от AKS в облаке или AKS HCI. AkS Edge Essentials имеет только одну виртуальную машину Linux на каждом компьютере, а также виртуальную машину Windows при необходимости. Каждая виртуальная машина имеет статическое выделение ОЗУ, хранилища и физических ядер ЦП, назначенных во время установки. В развертывании с несколькими узлами один из компьютеров является основным компьютером с узлом управления Kubernetes, а другие будут вторичными компьютерами с рабочими узлами. В этом сценарии развертывания мы настроим кластер K8S с помощью внешнего коммутатора. С помощью этой конфигурации можно запускать kubectl
с другого компьютера в сети, оценивать производительность рабочей нагрузки на внешнем коммутаторе и т. д.
Предварительные требования
Настройте компьютер, как описано в статье Настройка компьютера .
Шаг 1. Полные параметры конфигурации развертывания Kubernetes
Параметры, необходимые для создания масштабируемого кластера, можно создать с помощью следующей команды:
New-AksEdgeConfig -DeploymentType ScalableCluster -outFile .\aksedge-config.json | Out-Null
При этом создается файл конфигурации с именем aksedge-config.json который содержит конфигурацию, необходимую для создания масштабируемого кластера с узлом Linux. Файл создается в текущем рабочем каталоге. Дополнительные варианты создания файла конфигурации см. в следующих примерах. Подробное описание параметров конфигурации доступно здесь.
Ключевые параметры, которые следует отметить для масштабируемого развертывания Kubernetes:
Сведения о внешнем коммутаторе. Полное развертывание использует внешний коммутатор для обеспечения связи между узлами. Необходимо указать
MachineConfigType.NetworkConnection.AdapterName
параметр какEthernet
илиWi-Fi
:# get the list of available adapters in the machine Get-NetAdapter -Physical | Where-Object { $_.Status -eq 'Up' }
Если вы создали внешний коммутатор в Hyper-V, вы можете указать сведения о vswitch в файле конфигурации. Если вы не создаете внешний коммутатор в диспетчере Hyper-V и не выполняете
New-AksEdgeDeployment
команду, AKS Edge Essentials автоматически создает внешний коммутатор с именемaksedgesw-ext
и использует его для развертывания.Примечание
В этом выпуске существует известная проблема с автоматическим созданием внешнего коммутатора
New-AksEdgeDeployment
с помощью команды , если вы используете адаптер Wi-Fi для коммутатора. В этом случае сначала создайте внешний коммутатор с помощью диспетчера Hyper-V — диспетчера виртуальных коммутаторов, сопоставьте коммутатор с адаптером Wi-Fi, а затем укажите сведения о коммутаторе в json конфигурации, как описано ниже.IP-адреса. Необходимо выделить бесплатные IP-адреса из сети для уровня управления, служб Kubernetes и узлов (виртуальных машин). Дополнительные сведения см. в обзоре сети AKS Edge Essentials. Например, в локальной сети с диапазоном IP-адресов 192.168.1.0/24 можно использовать 1,151 и выше за пределами область DHCP, поэтому они, скорее всего, будут бесплатными. В настоящее время Essentials AKS Edge поддерживает только IPv4-адреса. В идеале вы будете знать, какие бесплатные IP-адреса можно использовать; однако вы можете использовать скрипт AksEdge-ListUsedIPv4s из репозитория GitHub для просмотра IP-адресов, которые используются в настоящее время, чтобы избежать использования этих IP-адресов в конфигурации. В разделе файла конфигурации необходимо указать
Network
следующие параметры:ControlPlaneEndpointIp
,Ip4GatewayAddress
, ,Ip4PrefixLength
ServiceIPRangeSize
, ,ServiceIPRangeStart
иDnsServers
.Значение
Network.NetworkPlugin
по умолчанию —flannel
. Flannel — это CNI по умолчанию для кластера K3S. В кластере K8S измените наNetworkPlugin
calico
.В дополнение к предыдущим параметрам можно задать следующие параметры в соответствии с конфигурацией развертывания, как описано здесь:
LinuxNode.CpuCount
,LinuxNode.MemoryInMB
,LinuxNode.DataSizeInGB
,LinuxNode.Ip4Address
,WindowsNode.CpuCount
,WindowsNode.MemoryInMB
,WindowsNode.Ip4Address
,Init.ServiceIPRangeSize
иNetwork.InternetDisabled
.
Шаг 2. Проверка файла конфигурации
После обновления файла aksedge-config.json запустите средство AksEdgePrompt. Это средство открывает окно PowerShell с повышенными привилегиями с загруженными модулями. Затем выполните следующую команду, чтобы проверить параметры сети с помощью командлета Test-AksEdgeNetworkParameters
:
Test-AksEdgeNetworkParameters -JsonConfigFilePath .\aksedge-config.json
Шаг 3. Создание кластера полного развертывания
Если Test-AksEdgeNetworkParameters
возвращается true
значение , вы готовы к созданию развертывания. Развертывание можно создать с помощью командлета New-AksEdgeDeployment
:
New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json
Командлет New-AksEdgeDeployment
автоматически извлекает файл kubeconfig.
Шаг 4. Проверка развертывания
kubectl get nodes -o wide
kubectl get pods --all-namespaces -o wide
Ниже показан снимок экрана кластера Kubernetes:
Шаг 5. Добавление рабочего узла Windows (необязательно)
Внимание!
Рабочие узлы Windows являются экспериментальной функцией в этом выпуске. Мы активно работаем над этой функцией.
Если вы хотите добавить узел Windows на существующий компьютер только linux, можно выполнить следующую команду:
New-AksEdgeScaleConfig -ScaleType AddNode -NodeType Windows -WindowsNodeIp "xxx" -outFile .\ScaleConfig.json | Out-Null
Здесь также можно указать такие параметры, как и (илиMemoryInMB
) CpuCount
для виртуальной машины Windows.
Вы можете использовать созданный файл конфигурации и выполнить следующую команду, чтобы добавить узел Windows.
Add-AksEdgeNode -JsonConfigFilePath .\ScaleConfig.json
Пример конфигурации для различных вариантов развертывания
Выделение ресурсов узлам
Чтобы подключиться к Arc и развернуть приложения с помощью GitOps, выделите четыре ЦП или более для LinuxNode.CpuCount
(вычислительную мощность), 4 ГБ или более для LinuxNode.MemoryinMB
(ОЗУ) и назначьте номер больше 0 ServiceIpRangeSize
. Здесь мы выделяем 10 IP-адресов для служб Kubernetes:
{
"Init": {
"ServiceIpRangeSize": 10,
"ServiceIPRangeStart": "192.168.1.151"
},
"Network": {
"ControlPlaneEndpointIp": "192.168.1.191",
"NetworkPlugin": "calico",
"Ip4GatewayAddress": "192.168.1.1",
"Ip4PrefixLength": 24,
"DnsServers": ["192.168.1.1"]
},
"Machines": [
{
"NetworkConnection": {
"AdapterName": "Ethernet"
},
"LinuxNode": {
"CpuCount": 4,
"MemoryInMB": 4096,
"DataSizeInGB": 20,
"Ip4Address": "192.168.1.171"
}
}
]
}
Create узлах Linux и Windows
Чтобы запустить уровень управления Linux и рабочий узел Windows на компьютере, создайте файл конфигурации с помощью следующей команды:
New-AksEdgeConfig -DeploymentType ScalableCluster -NodeType LinuxAndWindows -outFile .\aksedge-config.json | Out-Null
Create развертывания с помощью команды :
New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json
{
"Machines": [
{
"NetworkConnection": {
"AdapterName": "Ethernet"
},
"LinuxNode": {
"CpuCount": 4,
"MemoryInMB": 4096,
"DataSizeInGB": 20,
"Ip4Address": "192.168.1.171"
},
"WindowsNode": {
"CpuCount": 2,
"MemoryInMB": 4096,
"Ip4Address": "192.168.1.172"
}
}
]
}
Дальнейшие действия
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по