Руководство по переносу узлов в Azure Linux с ПОМОЩЬЮ OS Guard (предварительная версия)

Note

Azure Linux с OS Guard (предварительная версия) заменяется на Azure Container Linux (ACL).

Azure Контейнер Linux — это долгосрочная неизменяемая, оптимизированная для контейнеров операционная система Linux (OS) для Azure Kubernetes Service (AKS). Она обеспечивает безопасную, минималистичную и операционно согласованную хостовую ОС, предназначенную для запуска контейнеризованных рабочих нагрузок в большом масштабе.

Дополнительные сведения см. в обзоре Azure Container Linux (ACL).

В этом руководстве, части третьей из пяти, вы переносите имеющиеся узлы на Azure Linux с OS Guard. Вы можете перенести существующие узлы с помощью одного из следующих методов:

  • Удалите существующие пулы узлов и добавьте новые пулы узлов OS Guard.
  • Выполните миграцию номера SKU операционной системы на месте.

Если у вас нет существующих узлов для миграции, перейдите к следующему руководству. В последующих руководствах вы узнаете, как включить телеметрию и мониторинг в кластерах и обновить Azure Linux с помощью узлов OS Guard.

Azure Linux: особенности и ограничения OS Guard

Прежде чем начать, ознакомьтесь со следующими рекомендациями и ограничениями для Azure Linux с OS Guard (предварительная версия):

  • Для работы с Azure Linux и OS Guard требуется версия Kubernetes 1.32.0 или выше.
  • Все образы Azure Linux с OS Guard включают в себя Федеральный стандарт обработки информации (FIPS) и доверенный запуск.
  • Azure CLI и шаблоны ARM являются единственными поддерживаемыми методами развертывания для Azure Linux с OS Guard в AKS в предварительной версии. PowerShell и Terraform не поддерживаются.
  • Образы Arm64 не поддерживаются в Azure Linux с OS Guard на AKS в режиме предварительной версии.
  • NodeImage и None являются единственными поддерживаемыми каналами обновления операционной системы (ОС) для Azure Linux с OS Guard в AKS. Unmanaged и SecurityPatch несовместимы с Azure Linux с OS Guard из-за неизменяемого каталога /usr.
  • Потоковая передача артефактов не поддерживается.
  • Песочница Pod не поддерживается.
  • Конфиденциальные виртуальные машины (CVM) не поддерживаются.
  • Виртуальные машины 1-го поколения не поддерживаются.

Необходимые условия

Установите расширение aks-preview Azure CLI

Important

Предварительные версии функций AKS доступны на условиях самообслуживания и по выбору пользователя. Предварительные версии предоставляются "как есть" и "при наличии". На них не распространяются соглашения об уровне обслуживания и ограниченная гарантия. Предварительные версии AKS сопровождаются частичной поддержкой клиентов на основе принципа лучших усилий. Как таковые, эти функции не предназначены для использования в производстве. Для получения дополнительной информации ознакомьтесь со следующими статьями поддержки:

aks-preview Установите расширение с помощью az extension add команды.

az extension add --name aks-preview

Обновите до последней версии расширения с помощью az extension update команды.

az extension update --name aks-preview

Регистрация флага компонента AzureLinuxOSGuardPreview

  1. Зарегистрируйте флаг функции AzureLinuxOSGuardPreview с помощью команды az feature register.

    az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    

    Через несколько минут отобразится состояние Registered (Зарегистрировано).

  2. Проверьте состояние регистрации с помощью az feature show команды.

    az feature show --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    ``
    
    
  3. Когда состояние показывает зарегистрировано, обновите регистрацию Microsoft.ContainerService поставщика ресурса с помощью команды az provider register.

    az provider register --namespace "Microsoft.ContainerService"
    

Добавление Azure Linux с пулами узлов OS Guard и удаление существующих пулов узлов

  1. Добавьте новый пул узлов Linux Azure с OS Guard с помощью az aks nodepool add команды. Эта команда добавляет новый пул узлов в кластер с флагом --mode System , что делает его системным пулом узлов. Пулы системных узлов необходимы для Azure Linux с кластерами OS Guard.

    # Declare environment variables with a random suffix for uniqueness
    export RANDOM_SUFFIX=$(openssl rand -hex 3)
    export NODE_POOL_NAME="np$RANDOM_SUFFIX"
    
    # Add a new Azure Linux with OS Guard node pool
    az aks nodepool add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --mode System --os-sku AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm
    

    Пример выходных данных:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/systempool",
      "name": "systempool",
      "provisioningState": "Succeeded"
    }
    
  2. Удалите существующие узлы с помощью az aks nodepool delete команды.

    az aks nodepool delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME 
    

Миграция SKU ОС на месте

Ограничения для миграции SKU ОС в существующей системе

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

  • Функция миграции SKU ОС недоступна через PowerShell или портал Azure. При использовании функции миграции SKU ОС для Azure Linux (OS Guard Preview) эта возможность недоступна через Terraform, PowerShell или портал Azure.
  • Функция миграции SKU ОС не поддерживает переименование существующих пулов узлов.
  • Ubuntu, Azure Linux и Azure Linux с OS Guard являются единственными поддерживаемыми целевыми объектами миграции SKU ОС Linux.
  • Доверенный запуск по умолчанию требуется для Azure Linux с OS Guard. Необходимо включить доверенный запуск для миграции в Azure Linux с OS Guard. Для этого может потребоваться создание новых пулов узлов.
  • FIPS требуется при включении Azure Linux с OS Guard. Если вы сейчас не используете образ FIPS, можно включить --enable-fips в команду обновления пула узлов.
  • Виртуальные машины 1-го поколения не поддерживаются.
  • SKU ОС Ubuntu с UseGPUDedicatedVHD поддержкой не может выполнить миграцию SKU ОС.
  • Конфиденциальные виртуальные машины (CVM) не поддерживаются.
  • Песочница Pod не поддерживается.
  • Миграция SKU ОС Windows не поддерживается.

Предварительные требования для миграции SKU ОС на месте

  • Существующий кластер AKS с по крайней мере одним пулом узлов Linux Azure.
  • Рекомендуется убедиться, что рабочие нагрузки настраиваются и выполняются успешно на узле контейнера Azure Linux с ОС Guard, прежде чем пытаться использовать функцию миграции SKU ОС, развернув кластер Azure Linux с ОС Guard в среде разработки и продакшен и убедившись в том, что ваша служба остается в рабочем состоянии.
  • Убедитесь, что функция миграции работает для вас в тестовой или dev среде перед тем как использовать процесс в рабочем кластере.
  • Убедитесь, что для ваших подов задан достаточный Pod Disruption Budget (PDB), чтобы AKS могла перемещать поды между виртуальными машинами в процессе обновления.
  • Вам потребуется Azure CLI версии 2.61.0 или более поздней. Используйте команду az version для поиска версии. Чтобы обновить до последней версии, используйте az upgrade команду.

Переместите SKU операционной системы в пуле узлов вашего хоста контейнеров Azure Linux на Azure Linux с OS Guard.

Вы можете перенести существующие пулы узлов Ubuntu или Azure Linux в Azure Linux с OS Guard, изменив SKU ОС пула узлов, что инициирует процесс обновления кластера через стандартный процесс поэтапного обновления образа узла. Эта новая функция не требует создания новых пулов узлов; вместо этого существующие пулы узлов автоматически перезаписываются.

Мигрируйте SKU ОС вашего пула узлов на Azure Linux с OS Guard, используя команду az aks nodepool update. Эта команда инициирует пересборку пула узлов, обновляя SKU ОС пула узлов с Azure Linux на Azure Linux с OS Guard. Изменение SKU ОС запускает операцию немедленного обновления, которая занимает несколько минут.

az aks nodepool update --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --os-sku AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm

Пример выходных данных:

{
  "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
  "name": "nodepool1",
  "osSku": "AzureLinuxOSGuard",
  "provisioningState": "Succeeded"
}

Note

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