Обновление среды выполнения кластера из Azure CLI

В этом руководстве описаны шаги по установке необходимых модулей командной строки Azure и расширений, необходимых для взаимодействия с Оператором Nexus.

Необходимые компоненты

  1. Необходимо установить Azure CLI .
  2. networkcloud Требуется расширение CLI. networkcloud Если расширение не установлено, его можно установить, выполнив указанные здесь действия.
  3. Доступ к портал Azure для обновления целевого кластера.
  4. Необходимо войти в ту же подписку, что и целевой кластер через az login
  5. Целевой кластер должен находиться в состоянии выполнения, при этом все узлы уровня управления работоспособны и 80+% вычислительных узлов в работающем и работоспособном состоянии.

Поиск доступных версий среды выполнения

Через портал

Чтобы найти доступные обновляемые версии среды выполнения, перейдите в целевой кластер в портал Azure. В области обзора кластера перейдите на вкладку "Доступные версии обновления".

Screenshot of Azure portal showing correct tab to identify available cluster upgrades.

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

Screenshot of Azure portal showing available cluster upgrades.

С помощью Azure CLI

Доступные обновления можно получить с помощью Azure CLI:

az networkcloud cluster show --name "clusterName" --resource-group "resourceGroup"

В выходных данных можно найти availableUpgradeVersions свойство и посмотреть targetClusterVersion на поле:

  "availableUpgradeVersions": [
    {
      "controlImpact": "True",
      "expectedDuration": "Upgrades may take up to 4 hours + 2 hours per rack",
      "impactDescription": "Workloads will be disrupted during rack-by-rack upgrade",
      "supportExpiryDate": "2023-07-31",
      "targetClusterVersion": "3.3.0",
      "workloadImpact": "True"
    }
  ],

Если нет доступных обновлений кластера, список будет пустым.

Обновление среды выполнения кластера с помощью ИНТЕРФЕЙСА командной строки

Чтобы выполнить обновление среды выполнения, используйте следующую команду Azure CLI:

az networkcloud cluster update-version --cluster-name "clusterName" --target-cluster-version
  "versionNumber" --resource-group "resourceGroupName"

Обновление среды выполнения — это длительный процесс. Обновление сначала обновляет узлы управления, а затем последовательно стойку по стою для рабочих узлов. Обновление считается завершенным после успешного обновления 80% рабочих узлов на стойку и 100% узлов управления. Рабочие нагрузки могут быть затронуты, пока рабочие узлы в стойке находятся в процессе обновления, однако рабочие нагрузки во всех остальных стойких не будут затронуты. Рекомендуется рассмотреть вопрос о размещении рабочей нагрузки в свете этой реализации.

Обновление всех узлов занимает несколько часов, но может занять больше времени, если другие процессы, такие как обновления встроенного ПО, также являются частью обновления. Из-за длительности процесса обновления рекомендуется периодически проверка состояние сведений кластера для текущего состояния обновления. Чтобы проверка о состоянии обновления, обратите внимание на подробное состояние кластера. Это проверка можно сделать с помощью портала или az CLI.

Чтобы просмотреть состояние обновления с помощью портал Azure, перейдите к целевому ресурсу кластера. На экране обзора кластера подробный статус предоставляется вместе с подробным сообщением о состоянии.

Обновление кластера выполняется, когда для объекта detailedStatus задано Updating значение и подробное значениеStatusMessage показывает ход обновления. Ниже приведены некоторые примеры хода выполнения обновления, показанные в подробных данныхStatusMessage Waiting for control plane upgrade to complete..., Waiting for nodepool "<rack-id>" to finish upgrading...и т. д.

Обновление кластера будет завершено, когда для подробных данныхStatusMessage задано Running значение и подробный отчет Cluster is up and running

Screenshot of Azure portal showing in progress cluster upgrade.

Чтобы просмотреть состояние обновления с помощью Azure CLI, используйте az networkcloud cluster show.

az networkcloud cluster show --cluster-name "clusterName" --resource-group "resourceGroupName"

Выходные данные должны быть сведениями целевого кластера, а подробные сведения о состоянии кластера должны присутствовать. Для получения более подробных сведений о ходе обновления отдельные BMM в каждой стойке можно проверка для состояния. Пример этого представлен в разделе справки в разделе " Роли компьютера BareMetal".

Настройка параметров порогового значения вычислений для обновления среды выполнения с помощью обновления кластера updateStrategy

Следующая команда Azure CLI используется для настройки параметров порогового значения вычислений для обновления среды выполнения:

az networkcloud cluster update --name "<clusterName>" --resource-group "<resourceGroup>" --update-strategy strategy-type="Rack" threshold-type="PercentSuccess" threshold-value="<thresholdValue>" max-unavailable=<maxNodesOffline> wait-time-minutes=<waitTimeBetweenRacks>

Ниже приведены обязательные аргументы.

  • тип стратегии: определяет стратегию обновления. В этом случае "Стойка" означает, что обновления происходят по стойке. Значение по умолчанию — "Rack"
  • пороговый тип: определяет, как следует оценивать пороговое значение, применяемое в единицах, определенных стратегией. Значение по умолчанию — PercentSuccess.
  • пороговое значение: числовое пороговое значение, используемое для оценки обновления. Значение по умолчанию равно 80.

Необязательные аргументы для этой команды.

  • max-недоступен: максимальное количество рабочих узлов, которые могут быть автономными, то есть обновляемой стойкой за раз. Значение по умолчанию — 32767.
  • время ожидания: период задержки или ожидания перед обновлением стойки. Значение по умолчанию ― 15.

Ниже приведен пример использования команды:

az networkcloud cluster update --name "cluster01" --resource-group "cluster01-rg" --update-strategy strategy-type="Rack" threshold-type="PercentSuccess" threshold-value=70 max-unavailable=16 wait-time-minutes=15

После успешного выполнения команды указанные значения updateStrategy будут применены к кластеру:

  "updateStrategy": {
      "maxUnavailable": 16,
      "strategyType": "Rack",
      "thresholdType": "PercentSuccess",
      "thresholdValue": 70,
      "waitTimeMinutes": 15,
    },

Вопросы и ответы

Определение остановленного или зависающего обновления кластера

Во время обновления среды выполнения возможно, что обновление не удается перейти вперед, но состояние сведений отражает, что обновление по-прежнему продолжается. Так как обновление среды выполнения может занять очень много времени, пока не задано время ожидания. Поэтому рекомендуется также периодически проверка в состоянии сведений и журналах кластера, чтобы определить, пытается ли обновление выполнять обновление на неопределенный срок.

Мы можем определить, когда это так, просматривая журналы кластера, подробное сообщение и подробное сообщение о состоянии. Если произошло время ожидания, мы бы заметили, что кластер постоянно сверяется с тем же неопределенным сроком и не перемещается вперед. Здесь рекомендуется проверка журналов кластера или настроенный ЗАКОН, чтобы узнать, возникает ли сбой или определенное обновление, вызывающее отсутствие прогресса.

Сбой оборудования не требует повторного выполнения обновления

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

Если произошел сбой оборудования, и обновление среды выполнения завершилось сбоем, так как пороговые значения не были выполнены для вычислительных узлов и узлов управления, повторное выполнение обновления среды выполнения может потребоваться в зависимости от того, когда произошел сбой и состояние отдельных серверов в стойке. Если стойка была обновлена до сбоя, то обновленная версия среды выполнения будет использоваться при повторной подготовке узлов. Если спецификация стойки не была обновлена до обновленной версии среды выполнения до сбоя оборудования, компьютер будет подготовлен с предыдущей версией среды выполнения. Чтобы обновить новую версию среды выполнения, отправьте новый запрос на обновление кластера, а только узлы с предыдущей версией среды выполнения будут обновлены. Узлы, которые были успешно выполнены в предыдущем действии обновления, не будут.

После обновления среды выполнения в кластере отображается состояние подготовки "Сбой"

Во время обновления среды выполнения кластер введет состояние Upgrading в случае сбоя обновления среды выполнения по причинам, связанным с ресурсами, кластер перейдет в Failed состояние подготовки. Это состояние может быть связано со жизненным циклом компонентов, связанных с кластером (например, служба хранилища Appliance) и может потребоваться для диагностики сбоя с поддержкой Майкрософт.