Обновление кластера Kubernetes в Azure Stack Hub

Обработчик AKS позволяет обновить кластер, который изначально был развернут с помощью этого средства. Кластеры можно обслуживать с помощью обработчика AKS. Задачи обслуживания выполняются так же, как для любой системы IaaS. Вы должны следить за доступностью новых обновлений и применять их, используя обработчик AKS.

Обновление кластера

Команда "Upgrade" (Обновление) обновляет версию Kubernetes и базовый образ ОС. При каждом запуске команды обновления для каждого узла кластера обработчик AKS создает новую виртуальную машину с помощью базового образа AKS, связанного с используемой версией aks-engine. Вы можете использовать команду aks-engine upgrade, чтобы сохранить валюту всех мастеров и агентов узлов в кластере.

Корпорация Майкрософт не управляет вашим кластером. Но корпорация Майкрософт предоставляет средство и образ виртуальной машины, которые можно использовать для управления кластером.

Для развернутого кластера обновляются следующие компоненты:

  • Kubernetes
  • поставщик Kubernetes в Azure Stack Hub;
  • базовая операционная система.

При обновлении рабочего кластера учитывайте следующее:

  • Используете ли вы правильную спецификацию кластера (apimodel.json) и группу ресурсов для целевого кластера?
  • Надежен ли компьютер, который вы используете в качестве клиентского, то есть на котором выполняется обработчик AKS и операции обновления?
  • Убедитесь, что у вас есть и нормально работает резервный кластер.
  • Если это возможно, выполняйте команду на виртуальной машине в среде Azure Stack Hub, чтобы снизить число сетевых прыжков и рисков сбоев подключения.
  • Убедитесь, что ваша подписка имеет достаточно пространства для завершения процесса. Этот процесс связан с выделением новых виртуальных машин.
  • Не запланировано обновлений системы или других задач.
  • Настройте промежуточное обновление в кластере, настройки которого точно совпадают с параметрами рабочего кластера, и проверьте в нем обновление перед тем, как запускать его в рабочем кластере.

Шаги для обновления к более новой версии Kubernetes

Примечание

Базовый образ AKS также будет обновлен, если вы используете более новую версию обработчика AKS, а образ доступен в Marketplace.

В приведенных ниже инструкциях используются минимальные шаги для выполнения обновления. Дополнительные сведения см. в статье Обновление кластеров Kubernetes.

  1. Сначала вам нужно определить версии, которые можно выбрать для обновления. Возможная версия зависит от текущей версии. Используйте полученное значение версии для выполнения обновления. Версии Kubernetes, поддерживаемые ядром AKS, можно получить, выполнив следующую команду:

    aks-engine get-versions --azure-env AzureStackCloud
    

    Полное сопоставление версий обработчика AKS, базового образа AKS и Kubernetes см. в разделе поддерживаемые версии обработчика AKS.

  2. Соберите сведения, которые понадобятся для выполнения команды upgrade. Обновление использует следующие параметры.

    Параметр Пример Описание
    azure-env AzureStackCloud Используйте AzureStackCloud, чтобы сообщить обработчику AKS, что целевой платформой является Azure Stack Hub.
    location local Название региона для Azure Stack Hub. Для ASDK параметр региона нужно настроить как local.
    resource-group kube-rg Введите имя новой группы ресурсов или выберите существующую. Имя ресурса должно содержать буквенно-цифровые символы. Оно вводится в нижнем регистре.
    subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Введите идентификатор подписки. Дополнительные сведения см. в разделе Подписка на предложение.
    api-model ./kubernetes-azurestack.json Путь к файлу конфигурации кластера или модели API.
    client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Введите GUID субъекта-службы. Идентификатор клиента определяется как идентификатор приложения, когда администратор Azure Stack Hub создает субъект-службу.
    client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Введите секрет субъекта-службы. Это секрет клиента, который вы настроили при создании службы.
    identity-system adfs Необязательный параметр. Укажите решение по управлению удостоверениями, если используются службы федерации Active Directory (AD FS).
  3. Указав все значения, выполните такую команду:

    aks-engine upgrade \
    --azure-env AzureStackCloud \
    --location <for an ASDK is local> \
    --resource-group kube-rg \
    --subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --api-model kube-rg/apimodel.json \
    --upgrade-version 1.18.15 \
    --client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --identity-system adfs # required if using AD FS
    
  4. Если по какой-либо причине операция обновления завершится сбоем, можно повторно запустить команду обновления после устранения проблемы. Обработчик AKS возобновит операцию, на которой случился сбой в предыдущий раз.

Этапы только для обновления образа ОС

  1. Просмотрите таблицу "supported-kubernetes-versions" (поддерживаемых версий kubernetes) и определите, есть ли у вас версия aks-engine и базовый образ AKS, которые нужно обновить. Чтобы просмотреть версию aks-engine, запустите: aks-engine version.
  2. Соответствующим образом обновите подсистему AKS на компьютере, где установлен модуль AKS-Engine: ./get-akse.sh --version vx.xx.x замените ./get-akse.sh --version vx.xx.x целевой версией.
  3. Попросите вашего оператора Azure Stack Hub добавить необходимую версию базового изображения AKS в Marketplace Azure Stack Hub, который планируете использовать.
  4. Выполните команду aks-engine upgrade, используя ту же используемую версию Kubernetes, но добавьте --force. Пример можно увидеть в статье Принудительное выполнение обновления.

Действия по обновлению кластера до ОС версии Ubuntu 18,04

С помощью AKS Engine версии 0.60.1 и выше можно обновить виртуальные машины кластера с Ubuntu 16,04 до 18,04. Выполните следующие действия.

  1. Находите и редактируйте api-model.json файл, созданный во время развертывания. Это должен быть тот же файл, который используется для любой операции обновления или масштабирования с aks-engine .
  2. Перейдите к разделам masterProfile и agentPoolProfiles в этих разделах измените значение distro на aks-ubuntu-18.04 .
  3. api-model.jsonСохраните файл и используйте api-model.json файл в aks-engin upgrade команде, как api-model.json .

Принудительное выполнение обновления

В некоторых случаях может потребоваться принудительно обновить кластер. Например, в первый день вы развертываете кластер в отключенной среде, используя последнюю версию Kubernetes. На следующий день Ubuntu выпускает исправление уязвимости, для которой корпорация Майкрософт создает новый базовый образ AKS. Вы можете установить новый образ, выполнив обновление до той же версии Kubernetes, которая уже развернута.

aks-engine upgrade \
--azure-env AzureStackCloud   
--location <for an ASDK is local> \
--resource-group kube-rg \
--subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--api-model kube-rg/apimodel.json \
--upgrade-version 1.18.15 \
--client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--force

Инструкции см. в статье о принудительном обновлении.

Дальнейшие действия