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


Переносимость контейнеров

Область применения: Windows Server версии 23H2

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

Windows Server Annual Channel for Container — это выпуск Windows Server, предназначенный для Служба Azure Kubernetes и развертываний Windows Server, ориентированных на контейнеры Windows Server, для повышения эффективности и обеспечения оптимизированной переносимости для контейнеров Windows и Linux. Дополнительные сведения о ежегодном канале для контейнеров в Windows Server см. в нашем объявлении TechCommunity.

Как работает переносимость

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

Без переносимости пользователи могут запускать рабочие нагрузки только с соответствующими версиями образа и узла. Например, пользователь под управлением узла Windows Server 2022 не мог запускать изолированные контейнеры windows Server 2019. Управление версиями между образом узла и контейнера представляет собой значительную точку боли в контейнеризации Windows, что затрудняет переход к более новым версиям узла контейнера. Например, Windows Server 2022 LTSC требовала обновления всех образов инфраструктуры и приложений до последней версии одновременно с обновлением узла.

Двоичный интерфейс приложения

Двоичный интерфейс приложения или ABI позволяет различным языкам программирования взаимодействовать с интерфейсами пользовательского и ядра. Взаимодействие клиентского кода с объектом среды выполнения происходит на самом низком уровне, с конструкциями клиентского языка, преобразованными в вызовы ABI объекта. Переносимость контейнеров Windows представляет стабильный ABI для взаимодействия с пользователем и ядром. Этот стабильный ABI отделяет компоненты пользователя и ядра системы и дает возможность отдельно обновлять элементы ядра и пользователя вашей системы.

Контейнеры могут запускать все двоичные файлы в режиме пользователя из базового уровня, кроме уровня ABI.

На следующей схеме показано взаимодействие между компонентами пользовательского режима и режима ядра.

Схема, показывающая границу ABI стабилизации. Процессы и службы узлов, а также процессы и службы контейнеров используют этот абстрактный слой для взаимодействия с базовым общим ядром.

Какие версии можно использовать?

Образы контейнеров Nano Server, Server Core и Windows Server доступны только через канал долгосрочного обслуживания для контейнеров под управлением Windows Server 2019 или более поздней версии. Дополнительные сведения о поддерживаемых образах контейнеров Windows Server см. в разделе "Жизненные циклы обслуживания базовых образов".

Узел контейнера Windows Server версии 23H2 поддерживает только образ контейнера Windows Server 2022 Long Servicing Channel (LTSC).

Служба Azure Kubernetes в настоящее время поддерживает узлы Windows Server 2019 и более поздних версий. Windows Server Annual Channel for Container — это еще один вариант ОС контейнера, который корпорация Майкрософт предлагает вместе с Kubernetes 1.28. Вы можете создавать пулы узлов на основе ежегодного канала и продолжать развертывать образы контейнеров Windows Server 2022 на этих узлах. Корпорация Майкрософт обновляет годовую версию канала и все новые выпуски Kubernetes автоматически. Однако также рекомендуется следовать последним выпускам LTSC, чтобы убедиться, что контейнеры актуальны.

Примечание.

Хотя предыдущие выпуски образов контейнера могут выполняться в более новой ОС узла, более новые операционные системы образов контейнеров не могут выполняться в предыдущей операционной системе узла.