• Русский
  • Обновление Kubernetes в Huawei DCS

    В этом руководстве объясняется, как завершить Phase 2 рабочего процесса обновления для кластеров в Huawei DCS. Перед обновлением Kubernetes завершите обновление Distribution Version, описанное в Обновление кластеров.

    Последовательность обновления

    Обновляйте кластеры DCS в следующем порядке:

    1. Обновите Distribution Version (Aligned Extensions). См. Обновление версии дистрибутива.
    2. Обновите версию Kubernetes плоскости управления.
    3. Обновите worker nodes до целевой версии Kubernetes.

    Cluster API координирует поочередные обновления с встроенными механизмами защиты, чтобы уменьшить влияние на сервисы.

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

    Перед началом убедитесь, что выполнены все следующие условия:

    • Обновление Distribution Version завершено
    • Плоскость управления доступна
    • Все nodes находятся в healthy состоянии и имеют состояние Ready
    • IP Pool имеет достаточную емкость для поочередных обновлений
    • Шаблон VM поддерживает целевую версию Kubernetes. См. Матрица поддержки ОС для сопоставления версий
    • Целевая версия Kubernetes совместима с вашими workload и add-ons
    WARNING

    Потеря данных во время обновлений

    Обновления используют механизм поочередного обновления Cluster API. Во время rolling update в DCS data disks отсоединяются от старых VM и повторно подключаются к новым VM. Убедитесь, что никакие функции кластера или workload не зависят от данных, хранящихся на system disk.

    Использование YAML

    Обновления на основе YAML не зависят от Fleet Essentials.

    Обновление инфраструктуры плоскости управления

    Обновление machine template плоскости управления позволяет развернуть обновленные спецификации VM, системные исправления и настройки инфраструктуры.

    Процедура

    1. Создайте обновленный machine template

      Скопируйте существующий DCSMachineTemplate, на который ссылается KubeadmControlPlane, и сохраните его как новый файл:

      kubectl get dcsmachinetemplate <current-template-name> -n cpaas-system -o yaml > new-cp-template.yaml
    2. Измените спецификации шаблона

      Обновите новый шаблон при необходимости:

      • Установите metadata.name в <new-template-name>
      • Обновите spec.template.spec.vmTemplateName
      • Обновите spec.template.spec.vmConfig.dcsMachineCpuSpec.quantity
      • Обновите spec.template.spec.vmConfig.dcsMachineMemorySpec.quantity
      • Обновите spec.template.spec.vmConfig.dcsMachineDiskSpec
    3. Примените обновленный шаблон

      kubectl apply -f new-cp-template.yaml -n cpaas-system
    4. Обновите ссылку на плоскость управления

      Измените ресурс KubeadmControlPlane, чтобы он ссылался на новый шаблон:

      kubectl patch kubeadmcontrolplane <kcp-name> -n cpaas-system --type='merge' -p='{"spec":{"machineTemplate":{"infrastructureRef":{"name":"<new-template-name>"}}}}'
    5. Отслеживайте rolling update

      kubectl get kubeadmcontrolplane <kcp-name> -n cpaas-system -w
      kubectl get machines -n cpaas-system -l cluster.x-k8s.io/control-plane

    Обновление версии Kubernetes плоскости управления

    Для обновления версии Kubernetes плоскости управления требуются как совместимый шаблон VM, так и обновленная версия KubeadmControlPlane.

    Процедура

    1. Подготовьте совместимый шаблон VM

      Убедитесь, что указанный DCSMachineTemplate использует vmTemplateName, который соответствует целевой версии Kubernetes.

    2. Обновите версию плоскости управления

      Измените spec.version в ресурсе KubeadmControlPlane. При необходимости одновременно обновите связанные параметры развертывания или указанный шаблон инфраструктуры, чтобы они соответствовали вашей политике обновления.

    3. Отслеживайте обновление

      kubectl get kubeadmcontrolplane <kcp-name> -n cpaas-system
      kubectl get machines -n cpaas-system -l cluster.x-k8s.io/control-plane
      kubectl get nodes

    Обновление worker nodes

    Обновления Kubernetes для worker nodes управляются через ресурсы MachineDeployment.

    Процедура

    1. Создайте обновленный machine template

      • Создайте новый DCSMachineTemplate с vmTemplateName, который поддерживает целевую версию Kubernetes
      • Убедитесь, что шаблон VM содержит корректные binaries Kubernetes и зависимости
    2. Обновите MachineDeployment

      • Обновите spec.template.spec.version до целевой версии Kubernetes
      • Обновите spec.template.spec.infrastructureRef.name, чтобы он ссылался на новый machine template
      • При необходимости обновите spec.template.spec.bootstrap.configRef.name, если требуется изменение bootstrap-конфигурации
    3. Отслеживайте rolling update

      • Убедитесь, что rolling update успешно завершен
      • Убедитесь, что новые worker nodes присоединились к кластеру с целевой версией Kubernetes

    Использование Web UI

    Используйте этот рабочий процесс, чтобы обновить Kubernetes через Web UI после завершения Phase 1.

    Требование к версии: Для этого рабочего процесса требуются Fleet Essentials и Alauda Container Platform DCS Infrastructure Provider версии 1.0.13 или новее. Если версия provider ниже 1.0.13, используйте YAML manifests.

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

    • Обновление Distribution Version завершено. См. Обновление версии дистрибутива
    • Control Plane Node Pool находится в состоянии Running
    • IP Pool имеет достаточную емкость для поочередных обновлений

    Рабочий процесс обновления

    Обновления Kubernetes следуют этой последовательности после обновления Distribution Version:

    1. Обновите Control Plane Node Pool.
    2. Дождитесь завершения обновления Control Plane Node Pool.
    3. Обновите Worker Node Pools в любом порядке.

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

    Навигация: Clusters → Clusters → Выберите cluster → вкладка Node Pools

    Node Pools, для которых доступны обновления, отображают индикатор Доступно обновление. Щелкните карточку Node Pool, чтобы посмотреть текущую и целевую версии.

    Обновление Control Plane Node Pool

    Шаги:

    1. На вкладке Node Pools найдите Control Plane Node Pool
    2. Нажмите Обновить
    3. Просмотрите информацию об обновлении:
      • Текущая версия: текущая версия Kubernetes
      • Целевая версия: последняя поддерживаемая minor version (выбирается автоматически)
    4. Нажмите Подтвердить, чтобы начать

    Мониторинг:

    • Следите за состоянием Node Pool
    • Nodes будут обновляться по одному (maxSurge=0, maxUnavailable=1)
    • Время обновления зависит от количества nodes и ресурсов

    Обновление Worker Node Pools

    WARNING

    Worker Node Pools нельзя обновлять, пока не завершится обновление Control Plane Node Pool.

    Когда доступно обновление Worker Pool:

    • Версия Kubernetes плоскости управления совпадает с глобальной версией кластера
    • Плоскость управления находится в состоянии Running

    Шаги обновления:

    1. Для каждого Worker Node Pool:
      • Нажмите кнопку Обновить
      • Просмотрите и подтвердите
    2. После завершения обновления Control Plane pools можно обновлять параллельно

    Ограничения обновления:

    Состояние poolКнопка обновления
    Не Running❌ Отключено: "Обновление недоступно, когда Worker Node Pool не находится в состоянии Running"
    Control Plane не запущен❌ Отключено: "Сначала обновите Control Plane Node Pool"
    Control Plane обновляется❌ Отключено: "Дождитесь завершения обновления Control Plane Node Pool"
    Control Plane обновлен✅ Включено

    Обновления через несколько minor versions

    При обновлении через несколько minor versions (например, v1.32 → v1.34):

    1. Обновите Control Plane до v1.33
    2. Дождитесь завершения
    3. Обновите Control Plane до v1.34
    4. Повторите для Worker Pools

    Почему: Kubernetes поддерживает только обновления на одну minor version за раз.

    Устранение неполадок

    ПроблемаРешение
    Кнопка обновления недоступнаПроверьте состояние pool и версию Control Plane
    Обновление завислоПроверьте доступность IP Pool, ресурсы платформы DCS
    Nodes не присоединяютсяПроверьте сетевое соединение, настройки DNS

    Дополнительные ресурсы