Обновление кластеров в Huawei Cloud Stack
В этом руководстве описано, как обновлять кластеры Kubernetes в Huawei Cloud Stack с минимальным временем простоя, сохраняя стабильность и целостность данных.
Содержание
ОбзорОбновление control planeОбновление образа инфраструктурыПорядок действийОбновление версии KubernetesПредварительные требованияПорядок действийОбновление worker nodesДополнительные материалыОбзор
Обновление кластеров на HCS включает несколько компонентов и выполняется по структурированному процессу, чтобы обеспечить надежность системы:
- Обновление control plane: обновление компонентов control plane Kubernetes и базовой инфраструктуры
- Обновление worker nodes: обновление worker nodes с новыми образами машин и версиями Kubernetes
- Обновление инфраструктуры: изменение характеристик виртуальных машин, хранилища и сетевых конфигураций
Cluster API оркестрирует декларативные поэтапные обновления со встроенными механизмами безопасности.
Предварительные требования
Перед началом убедитесь, что:
- control plane доступен
- все узлы в состоянии Ready
Для первоначального развертывания см. руководство Create Cluster.
Кластеры с одним control plane
Процесс обновления, описанный в этом документе, применяется к кластерам HCS с высокодоступным control plane. Кластеры HCS с одним control plane поддерживаются для создания, но не поддерживаются для обновления через этот процесс.
Потеря данных во время обновлений
Обновления используют механизм поэтапной замены Cluster API. Текущий провайдер HCS не сохраняет и не переподключает диски данных при замене узла. Когда узел заменяется, старая VM и прикрепленные к ней тома могут быть удалены вместе. Не рассматривайте локальные данные узла на дисках данных HCS как сохраняемое состояние. Переместите состояние в внешнее постоянное хранилище или выполните резервное копирование и миграцию перед началом обновления.
Обновление control plane
Обновление control plane включает обновление Kubernetes API server, etcd, scheduler и controller manager, а также базовой инфраструктуры VM.
Для control plane HCS, использующих фиксированный по размеру HCSMachineConfigPool, во время обновления сохраняйте KubeadmControlPlane.spec.rolloutStrategy.rollingUpdate.maxSurge: 0. Этот стандартный путь уменьшения и последующего увеличения обычно не требует дополнительных IP-адресов control plane. Добавляйте дополнительные записи hostname и static IP в пул control plane только если вы планируете увеличить число реплик control plane или намеренно задать maxSurge больше 0.
Обновление образа инфраструктуры
Обновление базовых образов машин для узлов control plane обеспечивает исправления безопасности, улучшение производительности и обновление системных компонентов.
Порядок действий
-
Создайте обновленный шаблон машины
Скопируйте существующий
HCSMachineTemplate, на который ссылаетсяKubeadmControlPlane, и измените требуемые параметры: -
Измените параметры шаблона
Измените новый шаблон:
- Установите
metadata.nameв значение<new-template-name> - Удалите из скопированного манифеста метаданные и поля status, сгенерированные сервером.
- Оставьте поля идентичности выполнения не заданными, включая
spec.template.spec.providerIDиspec.template.spec.serverId. Провайдер HCS присваивает эти значения при создании экземпляров. - При необходимости обновите:
spec.template.spec.imageNamespec.template.spec.flavorNamespec.template.spec.rootVolume.sizespec.template.spec.dataVolumes
- Установите
-
Разверните обновленный шаблон
Примените новый шаблон машины:
-
Обновите ссылку control plane
Измените ресурс
KubeadmControlPlane, чтобы он ссылался на новый шаблон: -
Отслеживайте поэтапное обновление
control plane автоматически выполнит поэтапное обновление:
Обновление версии Kubernetes
Обновление версии Kubernetes включает обновление как программного обеспечения control plane, так и поддерживающих образов виртуальных машин.
Предварительные требования
- Проверьте совместимость целевой версии Kubernetes с существующими рабочими нагрузками
- Убедитесь, что шаблон VM поддерживает целевую версию Kubernetes. Сопоставление версий см. в OS Support Matrix.
- Изучите путь обновления Kubernetes и политику version skew
Порядок действий
-
Обновите ссылку на шаблон VM
Обновите
spec.template.spec.imageNameв указанномHCSMachineTemplate. Новый шаблон VM должен соответствовать целевой версии Kubernetes. -
Обновите версию control plane
Измените поле
spec.versionв ресурсеKubeadmControlPlane(обязательно). Для стандартного пути control plane со static IP сохраняйтеspec.rolloutStrategy.rollingUpdate.maxSurge: 0. Меняйте параметры обновления за пределами этого только после того, как вы расширитеHCSMachineConfigPoolcontrol plane, добавив дополнительные слоты для hostname и IP. -
Проверьте ход обновления
Отслеживайте процесс поэтапного обновления:
Обновление worker nodes
Обновление worker nodes выполняется через ресурсы MachineDeployment.
Подробные процедуры для worker nodes см. в разделе Managing Nodes.