Обновление Kubernetes в Huawei DCS
В этом руководстве объясняется, как завершить Phase 2 рабочего процесса обновления для кластеров в Huawei DCS. Перед обновлением Kubernetes завершите обновление Distribution Version, описанное в Обновление кластеров.
Содержание
Последовательность обновленияПредварительные требованияИспользование YAMLОбновление инфраструктуры плоскости управленияПроцедураОбновление версии Kubernetes плоскости управленияПроцедураОбновление worker nodesПроцедураИспользование Web UIПредварительные требованияРабочий процесс обновленияПроверка доступных обновленийОбновление Control Plane Node PoolОбновление Worker Node PoolsОбновления через несколько minor versionsУстранение неполадокДополнительные ресурсыПоследовательность обновления
Обновляйте кластеры DCS в следующем порядке:
- Обновите Distribution Version (Aligned Extensions). См. Обновление версии дистрибутива.
- Обновите версию Kubernetes плоскости управления.
- Обновите worker nodes до целевой версии Kubernetes.
Cluster API координирует поочередные обновления с встроенными механизмами защиты, чтобы уменьшить влияние на сервисы.
Предварительные требования
Перед началом убедитесь, что выполнены все следующие условия:
- Обновление Distribution Version завершено
- Плоскость управления доступна
- Все nodes находятся в healthy состоянии и имеют состояние Ready
- IP Pool имеет достаточную емкость для поочередных обновлений
- Шаблон VM поддерживает целевую версию Kubernetes. См. Матрица поддержки ОС для сопоставления версий
- Целевая версия Kubernetes совместима с вашими workload и add-ons
Потеря данных во время обновлений
Обновления используют механизм поочередного обновления Cluster API. Во время rolling update в DCS data disks отсоединяются от старых VM и повторно подключаются к новым VM. Убедитесь, что никакие функции кластера или workload не зависят от данных, хранящихся на system disk.
Использование YAML
Обновления на основе YAML не зависят от Fleet Essentials.
Обновление инфраструктуры плоскости управления
Обновление machine template плоскости управления позволяет развернуть обновленные спецификации VM, системные исправления и настройки инфраструктуры.
Процедура
-
Создайте обновленный machine template
Скопируйте существующий
DCSMachineTemplate, на который ссылаетсяKubeadmControlPlane, и сохраните его как новый файл: -
Измените спецификации шаблона
Обновите новый шаблон при необходимости:
- Установите
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
- Установите
-
Примените обновленный шаблон
-
Обновите ссылку на плоскость управления
Измените ресурс
KubeadmControlPlane, чтобы он ссылался на новый шаблон: -
Отслеживайте rolling update
Обновление версии Kubernetes плоскости управления
Для обновления версии Kubernetes плоскости управления требуются как совместимый шаблон VM, так и обновленная версия KubeadmControlPlane.
Процедура
-
Подготовьте совместимый шаблон VM
Убедитесь, что указанный
DCSMachineTemplateиспользуетvmTemplateName, который соответствует целевой версии Kubernetes. -
Обновите версию плоскости управления
Измените
spec.versionв ресурсеKubeadmControlPlane. При необходимости одновременно обновите связанные параметры развертывания или указанный шаблон инфраструктуры, чтобы они соответствовали вашей политике обновления. -
Отслеживайте обновление
Обновление worker nodes
Обновления Kubernetes для worker nodes управляются через ресурсы MachineDeployment.
Процедура
-
Создайте обновленный machine template
- Создайте новый
DCSMachineTemplateсvmTemplateName, который поддерживает целевую версию Kubernetes - Убедитесь, что шаблон VM содержит корректные binaries Kubernetes и зависимости
- Создайте новый
-
Обновите MachineDeployment
- Обновите
spec.template.spec.versionдо целевой версии Kubernetes - Обновите
spec.template.spec.infrastructureRef.name, чтобы он ссылался на новый machine template - При необходимости обновите
spec.template.spec.bootstrap.configRef.name, если требуется изменение bootstrap-конфигурации
- Обновите
-
Отслеживайте 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:
- Обновите Control Plane Node Pool.
- Дождитесь завершения обновления Control Plane Node Pool.
- Обновите Worker Node Pools в любом порядке.
Проверка доступных обновлений
Навигация: Clusters → Clusters → Выберите cluster → вкладка Node Pools
Node Pools, для которых доступны обновления, отображают индикатор Доступно обновление. Щелкните карточку Node Pool, чтобы посмотреть текущую и целевую версии.
Обновление Control Plane Node Pool
Шаги:
- На вкладке Node Pools найдите Control Plane Node Pool
- Нажмите Обновить
- Просмотрите информацию об обновлении:
- Текущая версия: текущая версия Kubernetes
- Целевая версия: последняя поддерживаемая minor version (выбирается автоматически)
- Нажмите Подтвердить, чтобы начать
Мониторинг:
- Следите за состоянием Node Pool
- Nodes будут обновляться по одному (maxSurge=0, maxUnavailable=1)
- Время обновления зависит от количества nodes и ресурсов
Обновление Worker Node Pools
Worker Node Pools нельзя обновлять, пока не завершится обновление Control Plane Node Pool.
Когда доступно обновление Worker Pool:
- Версия Kubernetes плоскости управления совпадает с глобальной версией кластера
- Плоскость управления находится в состоянии Running
Шаги обновления:
- Для каждого Worker Node Pool:
- Нажмите кнопку Обновить
- Просмотрите и подтвердите
- После завершения обновления Control Plane pools можно обновлять параллельно
Ограничения обновления:
Обновления через несколько minor versions
При обновлении через несколько minor versions (например, v1.32 → v1.34):
- Обновите Control Plane до v1.33
- Дождитесь завершения
- Обновите Control Plane до v1.34
- Повторите для Worker Pools
Почему: Kubernetes поддерживает только обновления на одну minor version за раз.