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

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

Обработчик AKS позволяет обновить кластер, который изначально был развернут с помощью этого средства.The AKS engine allows you to upgrade the cluster that was originally deployed using the tool. Кластеры можно обслуживать с помощью обработчика AKS.You can maintain the clusters using the AKS engine. Задачи обслуживания выполняются так же, как для любой системы IaaS.Your maintenance tasks are similar to any IaaS system. Вы должны следить за доступностью новых обновлений и применять их, используя обработчик AKS.You should be aware of the availability of new updates and use the AKS engine to apply them.

Команда "Upgrade" (Обновление) обновляет версию Kubernetes и базовый образ ОС.The upgrade command updates the Kubernetes version and the base OS image. При каждом запуске команды обновления для каждого узла кластера обработчик AKS создает новую виртуальную машину с помощью базового образа AKS, связанного с используемой версией aks-engine.Every time that you run the upgrade command, for every node of the cluster, the AKS engine creates a new VM using the AKS Base Image associated to the version of aks-engine used. Вы можете использовать команду aks-engine upgrade, чтобы сохранить валюту всех мастеров и агентов узлов в кластере.You can use the aks-engine upgrade command to maintain the currency of every master and agent node in your cluster.

Корпорация Майкрософт не управляет вашим кластером.Microsoft doesn't manage your cluster. Но корпорация Майкрософт предоставляет средство и образ виртуальной машины, которые можно использовать для управления кластером.But Microsoft provides the tool and VM image you can use to manage your cluster.

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

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

При обновлении рабочего кластера учитывайте следующее:When upgrading a production cluster, consider:

  • Используете ли вы правильную спецификацию кластера (apimodel.json) и группу ресурсов для целевого кластера?Are you using the correct cluster specification (apimodel.json) and resource group for the target cluster?
  • Надежен ли компьютер, который вы используете в качестве клиентского, то есть на котором выполняется обработчик AKS и операции обновления?Are you using a reliable machine for the client machine to run the AKS engine and from which you are performing upgrade operations?
  • Убедитесь, что у вас есть и нормально работает резервный кластер.Make sure that you have a backup cluster and that it is operational.
  • Если это возможно, выполняйте команду на виртуальной машине в среде Azure Stack Hub, чтобы снизить число сетевых прыжков и рисков сбоев подключения.If possible, run the command from a VM within the Azure Stack Hub environment to decrease the network hops and potential connectivity failures.
  • Убедитесь, что ваша подписка имеет достаточно пространства для завершения процесса.Make sure that your subscription has enough space for the entire process. Этот процесс связан с выделением новых виртуальных машин.The process allocates new VMs during the process.
  • Не запланировано обновлений системы или других задач.No system updates or scheduled tasks are planned.
  • Настройте промежуточное обновление в кластере, настройки которого точно совпадают с параметрами рабочего кластера, и проверьте в нем обновление перед тем, как запускать его в рабочем кластере.Set up a staged upgrade on a cluster that is configured exactly as the production cluster and test the upgrade there before doing so in your production cluster

Шаги для обновления к более новой версии KubernetesSteps to upgrade to a newer Kubernetes version

Примечание

Базовый образ AKS также будет обновлен, если вы используете более новую версию обработчика AKS, а образ доступен в Marketplace.The AKS base image will also be upgrade if you are using a newer version of the aks-engine and the image is available in the marketplace.

В приведенных ниже инструкциях используются минимальные шаги для выполнения обновления.The following instructions use the minimum steps to perform the upgrade. Дополнительные сведения см. в статье Обновление кластеров Kubernetes.If would like additional detail, see the article Upgrading Kubernetes Clusters.

  1. Сначала вам нужно определить версии, которые можно выбрать для обновления.You need to first determine the versions you can target for the upgrade. Возможная версия зависит от текущей версии. Используйте полученное значение версии для выполнения обновления.This version depends on the version you currently have and then use that version value to perform the upgrade. В последнем обновлении поддерживаются такие версии Kubernetes: 1.14.7 и 1.15.10.The versions of Kubernetes supported in the latest update are 1.14.7 and 1.15.10. Ниже приведена таблица доступных обновлений.Follow this table for the upgrades available:
Текущая версияCurrent version Доступное обновлениеUpgrade available
1.15.101.15.10 1.15.121.15.12
1.15.12, 1.16.8, 1.16.91.15.12, 1.16.8, 1.16.9 1.16.141.16.14
1.16.8, 1.16.9, 1.16.141.16.8, 1.16.9, 1.16.14 1.17.111.17.11

Полное сопоставление версий обработчика AKS, базового образа AKS и Kubernetes см. в разделе поддерживаемые версии обработчика AKS.For a complete mapping of AKS engine, AKS Base Image and Kubernetes versions see Supported AKS Engine Versions.

  1. Соберите сведения, которые понадобятся для выполнения команды upgrade.Collect the information you will need to run the upgrade command. Обновление использует следующие параметры.The upgrade uses the following parameters:

    ПараметрParameter ПримерExample ОписаниеDescription
    azure-envazure-env AzureStackCloudAzureStackCloud Используйте AzureStackCloud, чтобы сообщить обработчику AKS, что целевой платформой является Azure Stack Hub.To indicate to AKS engine that your target platform is Azure Stack Hub use AzureStackCloud.
    locationlocation locallocal Название региона для Azure Stack Hub.The region name for your Azure Stack Hub. Для ASDK параметр региона нужно настроить как local.For the ASDK, the region is set to local.
    resource-groupresource-group kube-rgkube-rg Введите имя новой группы ресурсов или выберите существующую.Enter the name of a new resource group or select an existing resource group. Имя ресурса должно содержать буквенно-цифровые символы. Оно вводится в нижнем регистре.The resource name needs to be alphanumeric and lowercase.
    subscription-idsubscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Введите идентификатор подписки.Enter your Subscription ID. Дополнительные сведения см. в разделе Подписка на предложение.For more information, see Subscribe to an offer
    api-modelapi-model ./kubernetes-azurestack.json./kubernetes-azurestack.json Путь к файлу конфигурации кластера или модели API.Path to the cluster configuration file, or API model.
    client-idclient-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Введите GUID субъекта-службы.Enter the service principal GUID. Идентификатор клиента определяется как идентификатор приложения, когда администратор Azure Stack Hub создает субъект-службу.The Client ID identified as the Application ID when your Azure Stack Hub administrator created the service principal.
    client-secretclient-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Введите секрет субъекта-службы.Enter the service principal secret. Это секрет клиента, который вы настроили при создании службы.This is the client secret you set up when creating your service.
    identity-systemidentity-system adfsadfs Необязательный параметр.Optional. Укажите решение по управлению удостоверениями, если используются службы федерации Active Directory (AD FS).Specify your identity management solution if you are using Active Directory Federated Services (AD FS).
  2. Указав все значения, выполните такую команду:With your values in place, run the following command:

    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.13.5 \
    --client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --identity-system adfs # required if using AD FS
    
  3. Если по какой-либо причине операция обновления завершится сбоем, можно повторно запустить команду обновления после устранения проблемы.If for any reason the upgrade operation encounters a failure, you can rerun the upgrade command after addressing the issue. Обработчик AKS возобновит операцию, на которой случился сбой в предыдущий раз.The AKS engine will resume the operation where it failed the previous time.

Этапы только для обновления образа ОСSteps to only upgrade the OS image

  1. Просмотрите таблицу "supported-kubernetes-versions" (поддерживаемых версий kubernetes) и определите, есть ли у вас версия aks-engine и базовый образ AKS, которые нужно обновить.Review the supported-kubernetes-versions table and determine if you have the version of aks-engine and AKS base Image that you plan for your upgrade. Чтобы просмотреть версию aks-engine, запустите: aks-engine version.To view the version of aks-engine run: aks-engine version.
  2. Обновите обработчик AKS соответствующим образом. На компьютере с установленным aks-engine запустите ./get-akse.sh --version vx.xx.x, заменив x.xx.x целевой версией.Upgrade your AKS engine accordingly, in the machine where you have installed aks-engine run: ./get-akse.sh --version vx.xx.x replacing x.xx.x with your targeted version.
  3. Попросите вашего оператора Azure Stack Hub добавить необходимую версию базового изображения AKS в Marketplace Azure Stack Hub, который планируете использовать.Ask your Azure Stack Hub operator to add the version of the AKS Base Image you need in the Azure Stack Hub Marketplace that you plan to use.
  4. Выполните команду aks-engine upgrade, используя ту же используемую версию Kubernetes, но добавьте --force.Run the aks-engine upgrade command using the same version of Kubernetes that you are already using, but add the --force. Пример можно увидеть в статье Принудительное выполнение обновления.You can see an example in Forcing an upgrade.

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

В некоторых случаях может потребоваться принудительно обновить кластер.There may be conditions where you may want to force an upgrade of your cluster. Например, в первый день вы развертываете кластер в отключенной среде, используя последнюю версию Kubernetes.For example, on day one you deploy a cluster in a disconnected environment using the latest Kubernetes version. На следующий день Ubuntu выпускает исправление уязвимости, для которой корпорация Майкрософт создает новый базовый образ AKS.The following day Ubuntu releases a patch to a vulnerability for which Microsoft generates a new AKS Base Image. Вы можете установить новый образ, выполнив обновление до той же версии Kubernetes, которая уже развернута.You can apply the new image by forcing an upgrade using the same Kubernetes version you already deployed.

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.13.5 \
--client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--force

Инструкции см. в статье о принудительном обновлении.For instructions, see Force upgrade.

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