Обновление версии ОС для рабочих нагрузок Windows Служба Azure Kubernetes (AKS)
При обновлении версии ОС работающей рабочей нагрузки Windows на Служба Azure Kubernetes (AKS) необходимо развернуть новый пул узлов, чтобы обеспечить соответствие версий Windows в каждом пуле узлов. В этой статье описаны шаги по обновлению версии ОС для рабочих нагрузок Windows в AKS. Хотя в этом примере основное внимание уделяется обновлению с Windows Server 2019 до Windows Server 2022, то же самое можно выполнить для обновления с любой версии Windows Server до другой.
Поддержка версий ОС Windows Server
Когда выпущена новая версия операционной системы Windows Server, AKS стремится поддерживать ее и рекомендует обновить до последней версии, чтобы воспользоваться исправлениями, улучшениями и новыми функциями. AKS предоставляет пятилетний жизненный цикл поддержки для каждой версии Windows Server, начиная с Windows Server 2022. В течение этого периода AKS выпустит новую версию, которая поддерживает более новую версию ОС Windows Server для обновления до.
Примечание.
- Windows Server 2019 прекращается после окончания срока действия Kubernetes версии 1.32. Дополнительные сведения см . в заметках о выпуске AKS.
- Windows Server 2022 уходит в отставку после того, как Kubernetes версии 1.34 достигает конца срока жизни (EOL). Дополнительные сведения см . в заметках о выпуске AKS.
Ограничения
Windows Server 2019 и Windows Server 2022 не могут совместно существовать в одном пуле узлов в AKS. Для размещения новой версии ОС необходимо создать пул узлов. Важно обеспечить соответствие разрешений и доступа между предыдущим и новым пулами узлов.
Подготовка к работе
- Обновите инструкцию
FROM
в Dockerfile до новой версии ОС. - Проверьте приложение и проверьте, работает ли приложение-контейнер в новой версии ОС.
- Разверните проверенное контейнерное приложение в AKS в среде разработки или тестирования.
- Запишите новое имя изображения или тег для использования в этой статье.
Примечание.
Сведения о создании Файла Dockerfile для рабочих нагрузок Windows см. в разделе Dockerfile в Windows и оптимизации Файлов Dockerfile.
Добавление пула узлов Windows Server 2022 в существующий кластер
- Добавьте пул узлов Windows Server 2022 в существующий кластер.
Обновление YAML-файла
Селектор узлов — это наиболее распространенный и рекомендуемый вариант размещения модулей pod Windows в узлах Windows.
Добавьте селектор узла в файл YAML, добавив следующую заметку:
nodeSelector: "kubernetes.io/os": windows
Заметка находит любой доступный узел Windows и помещает модуль pod на этот узел (следуя всем другим правилам планирования). При обновлении с Windows Server 2019 до Windows Server 2022 необходимо применить размещение на узле Windows и узле под управлением последней версии ОС. Для этого можно использовать другую заметку:
nodeSelector: "kubernetes.azure.com/os-sku": Windows2022
После обновления
nodeSelector
в YAML-файле необходимо также обновить образ контейнера, который вы хотите использовать. Эти сведения можно получить на предыдущем шаге, в котором вы создали новую версию контейнерного приложения, изменивFROM
инструкцию в Dockerfile.
Примечание.
Следует использовать тот же файл YAML, который использовался для первоначального развертывания приложения. Это гарантирует, что другие изменения конфигурации, кроме nodeSelector
образа контейнера, не изменяются.
Применение обновленного YAML-файла к существующей рабочей нагрузке
Просмотрите узлы в кластере
kubectl get nodes
с помощью команды.kubectl get nodes -o wide
В следующем примере выходных данных показаны все узлы кластера, включая созданный пул узлов и существующие пулы узлов:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME aks-agentpool-18877473-vmss000000 Ready agent 5h40m v1.23.8 10.240.0.4 <none> Ubuntu 18.04.6 LTS 5.4.0-1085-azure containerd://1.5.11+azure-2 akspoolws000000 Ready agent 3h15m v1.23.8 10.240.0.208 <none> Windows Server 2022 Datacenter 10.0.20348.825 containerd://1.6.6+azure akspoolws000001 Ready agent 3h17m v1.23.8 10.240.0.239 <none> Windows Server 2022 Datacenter 10.0.20348.825 containerd://1.6.6+azure akspoolws000002 Ready agent 3h17m v1.23.8 10.240.1.14 <none> Windows Server 2022 Datacenter 10.0.20348.825 containerd://1.6.6+azure akswspool000000 Ready agent 5h37m v1.23.8 10.240.0.115 <none> Windows Server 2019 Datacenter 10.0.17763.3165 containerd://1.6.6+azure akswspool000001 Ready agent 5h37m v1.23.8 10.240.0.146 <none> Windows Server 2019 Datacenter 10.0.17763.3165 containerd://1.6.6+azure akswspool000002 Ready agent 5h37m v1.23.8 10.240.0.177 <none> Windows Server 2019 Datacenter 10.0.17763.3165 containerd://1.6.6+azure
Примените обновленный ФАЙЛ YAML к существующей рабочей нагрузке с помощью
kubectl apply
команды и укажите имя YAML-файла.kubectl apply -f <filename>
В следующем примере выходных данных отображается настроенное состояние развертывания:
deployment.apps/sample configured service/sample unchanged
На этом этапе AKS запускает процесс завершения существующих модулей pod и развертывания новых модулей pod на узлах Windows Server 2022.
Проверьте состояние развертывания с помощью
kubectl get pods
команды.kubectl get pods -o wide
В следующем примере выходных данных показаны модули pod в
default
пространстве имен:NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES sample-7794bfcc4c-k62cq 1/1 Running 0 2m49s 10.240.0.238 akspoolws000000 <none> <none> sample-7794bfcc4c-rswq9 1/1 Running 0 2m49s 10.240.1.10 akspoolws000001 <none> <none> sample-7794bfcc4c-sh78c 1/1 Running 0 2m49s 10.240.0.228 akspoolws000000 <none> <none>
Рекомендации по безопасности и проверке подлинности
Если вы используете управляемые группы учетные записи служб (gMSA), необходимо обновить конфигурацию управляемого удостоверения для нового пула узлов. gMSA использует секрет (учетную запись пользователя и пароль), чтобы узел, на котором выполняется модуль pod Windows, может пройти проверку подлинности контейнера в идентификаторе Microsoft Entra. Для доступа к этому секрету в Azure Key Vault узел использует управляемое удостоверение, которое предоставляет узлу доступ к ресурсу. Так как для каждого пула узлов настроены управляемые удостоверения и модуль pod теперь находится в новом пуле узлов, необходимо обновить эту конфигурацию. Дополнительные сведения см. в статье Включение групповых управляемых учетных записей (GMSA) для узлов Windows Server в кластере Службы Azure Kubernetes (AKS).
Тот же принцип применяется к управляемым удостоверениям для любого другого пула модулей pod или узлов при доступе к другим ресурсам Azure. Необходимо обновить любой доступ, который предоставляет управляемое удостоверение, чтобы отразить новый пул узлов. Чтобы узнать, как просматривать сведения о действиях по обновлению и входу, см. статью Как просмотреть сведения о действиях для управляемых удостоверений.
Следующие шаги
Из этой статьи вы узнали, как обновить версию ОС для рабочих нагрузок Windows в AKS. Дополнительные сведения о рабочих нагрузках Windows в AKS см. в статье "Развертывание приложения контейнера Windows в Служба Azure Kubernetes(AKS)".
Azure Kubernetes Service