Часто задаваемые вопросы о пулах узлов Windows Server в AKS

В службе Azure Kubernetes Service (AKS) можно создать пул узлов, который будет работать под управлением Windows Server в качестве гостевой ОС на узлах. Эти узлы могут запускать собственные приложения контейнеров Windows, например созданные на платформа .NET. Поддержка контейнеров операционными системами Linux и Windows отличается. Некоторые распространенные компоненты Linux Kubernetes и pod в настоящее время недоступны для пулов узлов Windows.

В этой статье приведены некоторые часто задаваемые вопросы и основные понятия ОС об узлах Windows Server в AKS.

Какие диски поддерживаются для Windows?

Диски Azure и Файлы Azure являются поддерживаемыми типами томов и доступны в виде томов NTFS в контейнере сервера Windows.

Поддерживает ли Linux и Windows виртуальные машины поколения 2?

Виртуальные машины поколения 2 поддерживаются только в Linux и Windows для WS2022. См. сведения о поддержке 2-го поколения виртуальных машин в Azure.

Как поставить заплаты для моих узлов Windows?

Чтобы получить последние исправления для узлов Windows, можно либо обновить пул узлов либо обновить образ узла. Центр обновления Windows не подключен для узлов в AKS. AKS выпускает новые образы пула узлов, когда появляются исправления, и пользователь сам должен обновлять пулы узлов, чтобы иметь все актуальные исправления. Этот процесс исправления касается используемой версии Kubernetes. Заметки о выпуске AKS содержат информацию о выходе новых версий. Дополнительные сведения об обновлении пула узлов Windows Server см. в статье Обновление пула узлов. Если вам необходимо обновить только образ узла, см. статью Обновление образа узла AKS.

Примечание.

Обновленный образ Windows Server будет использоваться только в том случае, если перед обновлением пула узлов было выполнено обновление кластера (обновление уровня управления).

Поддерживается ли сохранение исходного IP-адреса клиента?

В настоящее время возможность сохранения исходных IP-адресов клиента не поддерживается для узлов Windows.

Можно ли изменить максимальное число модулей pod на узел?

Да. Сведения о возможных последствиях изменения и доступных параметрах см. в разделе Максимальное число pod.

Что такое время ожидания TCP по умолчанию в ОС Windows?

Время ожидания TCP по умолчанию в ОС Windows составляет 4 минуты. Это значение не настраивается. Если приложение использует более длительное время ожидания, TCP-подключения между различными контейнерами в одном узле закрываются через четыре минуты.

Почему при попытке создания нового пула агентов Windows появляется сообщение об ошибке?

Если ваш кластер был создан до февраля 2020 г., и вы ни разу не выполняли операций обновления кластера, это означает, что кластер по-прежнему использует старый образ Windows. Возможно, вы обнаружили ошибку подобного содержания:

"Не обнаружен следующий список образов, на которые ссылается шаблон развертывания: Издатель: MicrosoftWindowsServer, предложение: WindowsServer, Sku: 2019-datacenter-core-smalldisk-2004, версия: последняя. Инструкции по поиску доступных образов см. в статье Поиск и использование образов виртуальных машин в Azure Marketplace с помощью Azure PowerShell.

Чтобы исправить эту проблему, сделайте следующее:

  1. Обновите уровень управления кластером, чтобы обновить предложение образа и издателя.
  2. Создайте новые пулы агентов Windows.
  3. Переместите pod Windows из существующих пулов агентов Windows в новые пулы агентов Windows.
  4. Удалите старые пулы агентов Windows.

Почему при попытке развернуть модули pod Windows возникает ошибка?

Если указать значение меньше --max-pods количества модулей pod, которые вы хотите создать, может появиться No available addresses ошибка.

Чтобы устранить эту ошибку az aks nodepool add , используйте команду с достаточно --max-pods высоким значением:

az aks nodepool add \
    --cluster-name $CLUSTER_NAME \
    --resource-group $RESOURCE_GROUP \
    --name $NODEPOOL_NAME \
    --max-pods 3

Дополнительные сведения см. в --max-pods документации.

Почему на узле виртуальной машины есть неожиданный пользователь с именем SSHD?

AKS добавляет пользователя с именем sshd при установке службы OpenSSH. Этот пользователь не является вредоносным. Мы рекомендуем клиентам обновить оповещения, чтобы игнорировать эту непредвиденная учетная запись пользователя.

Как выполнить смену субъекта-службы для моего пула узлов Windows?

Пулы узлов Windows не поддерживают смену субъекта-службы. Чтобы обновить субъект-службу, создайте новый пул узлов Windows и перенесите pod из старого пула в новый. После переноса модулей pod в новый пул удалите старый пул узлов.

Вместо субъектов-служб используйте управляемые удостоверения, которые по сути являются оболочками для субъектов-служб. Дополнительные сведения см. в статье Использование управляемых удостоверений в службе Kubernetes Azure.

Как изменить пароль администратора для узлов Windows Server в моем кластере?

При создании кластера AKS необходимо указать параметры --windows-admin-password и --windows-admin-username, чтобы задать учетные данные администратора для любых узлов Windows Server в кластере. Если вы не указали учетные данные администратора при создании кластера с помощью портала Azure или при задании --vm-set-type VirtualMachineScaleSets и --network-plugin azure с помощью Azure CLI, по умолчанию используются имя пользователя azureuser и случайный пароль.

Чтобы изменить пароль администратора, используйте команду az aks update:

az aks update \
    --resource-group $RESOURCE_GROUP \
    --name $CLUSTER_NAME \
    --windows-admin-password $NEW_PW

Внимание

az aks update Выполнение операции обновляет только пулы узлов Windows Server и приведет к перезапуску. Пулы узлов Linux не затрагиваются.

При изменении значения --windows-admin-password новый пароль должен содержать не менее 14 символов и соответствовать требованиям к паролю Windows Server.

Сколько пулов узлов можно создать?

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

Как можно назвать пулы узлов Windows?

Пул узлов Windows может иметь шестизначное имя.

Все ли функции поддерживаются узлами Windows?

Узлы Windows на данный момент не поддерживают Kubenet.

Можно ли запускать контроллеры объекта ingress на узлах Windows?

Да, контроллер объекта ingress, который поддерживает контейнеры Windows Server, может работать на узлах Windows в AKS.

Могут ли мои контейнеры Windows Server использовать gMSA?

Поддержка управляемой группой учетной записи службы (gMSA) общедоступна для Windows в AKS. Сведения о включении управляемых учетных записей служб группы (GMSA) для узлов Windows Server в кластере Служба Azure Kubernetes (AKS)

Можно ли использовать Azure Monitor для контейнеров с узлами и контейнерами Windows?

Да, вы можете. Однако Azure Monitor представляет собой общедоступную предварительную версию для сбора журналов (stdout, stderr) и метрик из контейнеров Windows. Вы также можете присоединиться к прямой трансляции журналов stdout из контейнера Windows.

Существуют ли ограничения на количество служб в кластере с узлами Windows?

Кластер с узлами Windows может иметь около 500 служб (иногда меньше), прежде чем он столкнется с нехваткой портов. Это ограничение применяется к службе Kubernetes с внешней политикой трафика с значением Cluster.

При настройке внешней политики трафика в службе в качестве кластера трафик проходит дополнительный исходный NAT на узле, что также приводит к резервированию порта из пула динамических портов TCPIP. Этот пул портов является ограниченным ресурсом (~16K портов по умолчанию), и многие активные подключения к службам могут привести к динамическому исчерпанию пула портов, что приводит к снижению подключений.

Если служба Kubernetes настроена с помощью политики внешнего трафика, то проблемы с исчерпанием портов, скорее всего, не возникают в 500 службах.

Можно ли использовать Преимущество гибридного использования Azure с узлами Windows?

Да. Преимущество гибридного использования Azure для Windows Server сокращает эксплуатационные расходы, позволяя перенести локальную лицензию Windows Server на узлы Windows AKS.

Преимущество гибридного использования Azure можно использовать как в целом кластере AKS, так и на отдельных узлах. Для отдельных узлов необходимо перейти к группе ресурсов узла и применить Преимущество гибридного использования Azure к узлам напрямую. Дополнительные сведения о применении преимущества гибридного использования Azure к отдельным узлам см. в статье Преимущество гибридного использования Azure для Windows Server.

Чтобы применить Преимущество гибридного использования Azure в новом кластере AKS, выполните команду az aks create и воспользуйтесь аргументом --enable-ahub.

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --load-balancer-sku Standard \
    --windows-admin-password 'Password1234$' \
    --windows-admin-username azure \
    --network-plugin azure
    --enable-ahub

Чтобы применить Преимущество гибридного использования Azure в существующем кластере AKS, выполните команду az aks update и обновите кластер с помощью аргумента --enable-ahub.

az aks update \
    --resource-group myResourceGroup
    --name myAKSCluster
    --enable-ahub

Чтобы проверить, задано ли Преимущество гибридного использования Azure на узлах Windows в кластере, выполните команду az vmss show с аргументами --name и --resource-group, чтобы направить запрос в масштабируемую группу виртуальных машин. Чтобы определить группу ресурсов, в которой создается масштабируемый набор для пула узлов Windows, можно выполнить команду az vmss list -o table.

az vmss show --name myScaleSet --resource-group MC_<resourceGroup>_<clusterName>_<region>

Если в узлах Windows в масштабируемом наборе будет включено Преимущество гибридного использования Azure, выходные данные az vmss show будут выглядеть следующим образом:

""hardwareProfile": null,
    "licenseType": "Windows_Server",
    "networkProfile": {
      "healthProbe": null,
      "networkApiVersion": null,

Как изменить часовой пояс для работающего контейнера?

Чтобы изменить часовой пояс для работающего контейнера Windows Server, подключитесь к работающему контейнеру при помощи сеанса PowerShell. Например:

kubectl exec -it CONTAINER-NAME -- powershell

В работающем контейнере задайте часовой пояс при помощи команды Задать часовой пояс. Например:

Set-TimeZone -Id "Russian Standard Time"

Чтобы просмотреть текущий часовой пояс работающего контейнера или список доступных часовых поясов, используйте команду Определить часовой пояс.

Поддерживается ли сходство сеансов из клиентских подключений к модулям pod посредством контейнеров Windows?

Хотя сходство сеансов из клиентских подключений к модулям pod посредством контейнеров Windows будет поддерживаться в версии ОС Windows Server 2022, в настоящее время оно обеспечивается по IP-адресу клиента путем ограничения количества экземпляров на узел для требуемого модуля pod одним экземпляром и настройкой перенаправления трафика из службы Kubernetes в модуль pod на локальном узле.

Используйте следующую конфигурацию:

  1. Используйте кластер AKS с версией не ниже 1.20.
  2. Разрешите для модуля pod только один экземпляр на узел Windows. Это можно сделать путем запрета сходства в конфигурации развертывания.
  3. В конфигурации службы Kubernetes задайте externalTrafficPolicy=Local. Это гарантирует, что служба Kubernetes направляет трафик только в модули pod на локальном узле.
  4. В конфигурации службы Kubernetes задайте sessionAffinity: ClientIP. Это гарантирует, что служба Azure Load Balancer будет настроена со сходством сеансов.

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

Чтобы начать работу с контейнерами Windows Server в AKS, см. статью Создание пула узлов с Windows Server в AKS.