Использование планового обслуживания для планирования обновлений для участников сети приложений Azure Kubernetes (предварительная версия)

Это важно

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

В этой статье показано, как использовать плановое обслуживание для планирования обновлений компонентов для членов сети приложений Azure Kubernetes.

Обзор планового обслуживания для сети приложений

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

Два основных компонента в кластере — это прокси-серверы узлов ztunnel и агенты узла CNI Istio. Эти ресурсы представляют собой DaemonSets на каждом узле, поэтому их обновления затрагивают весь узел целиком и могут привести к сбоям в длительных TCP-подключениях. Чтобы изолировать сбои на уровне узла в рамках общего окна, Сеть приложений использует то же самое aksManagedNodeOSUpgradeSchedule расписание обслуживания, что и автоматические обновления операционной системы узлов службы Azure Kubernetes Service (AKS), если они настроены.

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

Замечание

Для использования планового обслуживания для сети приложений не требуется подключаться к автоматическим обновлениям ОС узла. Создание aksManagedNodeOSUpgradeSchedule не включает и не отключает автоматические обновления ОС узлов.

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

  • Существующий кластер AKS, подключенный как участник ресурса "Сеть приложений". Если у вас нет ресурса "Сеть приложений" или вы еще не подключены к кластеру, см. статью "Начало работы с сетью приложений Azure Kubernetes".
  • Версия Azure CLI - 2.84.0 или более поздняя. Проверьте версию с помощью az --version команды. Сведения об установке или обновлении см. в статье "Установка Azure CLI".
  • Мы рекомендуем ознакомиться с документацией по периоду техобслуживания, чтобы понять поля конфигурации и принцип работы окон техобслуживания в AKS.

Рекомендации

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

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

Поведение, зависящее от режима

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

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

Добавление периода обслуживания

  • Добавьте конфигурацию окна технического обслуживания в кластер AKS, используя команду az aks maintenanceconfiguration add. В следующем примере добавляется новая aksManagedNodeOSUpgradeSchedule конфигурация, которая запланирована для проведения технического обслуживания на каждую третью пятницу в промежутке с 12:00 до 8:00 в часовом поясе UTC+5:30.

    az aks maintenanceconfiguration add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedNodeOSUpgradeSchedule --schedule-type Weekly --day-of-week Friday --interval-weeks 3 --duration 8 --utc-offset +05:30 --start-time 00:00
    

Обновление существующего окна обслуживания

  • Обновите существующую конфигурацию обслуживания с помощью az aks maintenanceconfiguration update команды. В следующем примере обновляется конфигурация aksManagedNodeOSUpgradeSchedule, чтобы запланировать выполнение обслуживания каждую пятницу с 2:00 до 6:00 утра.

    az aks maintenanceconfiguration update --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedNodeOSUpgradeSchedule --schedule-type Weekly --day-of-week Friday --interval-weeks 1 --duration 4 --utc-offset +00:00 --start-time 02:00
    

Отображение конфигурации обслуживания для кластера

  • Просмотр определенного окна настроек обслуживания в кластере AKS, используя команду az aks maintenanceconfiguration show с параметром --name.

    az aks maintenanceconfiguration show --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedNodeOSUpgradeSchedule
    

    В следующем примере выходных данных показан период обслуживания для aksManagedNodeOSUpgradeSchedule:

    {
      "id": "/subscriptions/<subscription>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/maintenanceConfigurations/aksManagedNodeOSUpgradeSchedule",
      "maintenanceWindow": {
        "durationHours": 4,
        "notAllowedDates": [
          {
            "end": "2024-01-05",
            "start": "2023-12-23"
          }
        ],
        "schedule": {
          "absoluteMonthly": {
            "dayOfMonth": 1,
            "intervalMonths": 3
          },
          "daily": null,
          "relativeMonthly": null,
          "weekly": null
        },
        "startDate": "2023-01-20",
        "startTime": "09:00",
        "utcOffset": "-08:00"
      },
      "name": "aksManagedNodeOSUpgradeSchedule",
      "notAllowedTime": null,
      "resourceGroup": "myResourceGroup",
      "systemData": null,
      "timeInWeek": null,
      "type": null
    }
    

Удаление конфигурации обслуживания для кластера

  • Удалите окно конфигурации обслуживания в кластере AKS с помощью az aks maintenanceconfiguration delete команды.

    az aks maintenanceconfiguration delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedNodeOSUpgradeSchedule
    

Дополнительные сведения о сети приложений Azure Kubernetes см. в следующих статьях: