Обновление кластера
В этом руководстве объясняется, как обновлять кластеры Kubernetes, управляемые с помощью Cluster API, с минимальным временем простоя, сохраняя при этом стабильность и целостность данных.
Содержание
ОбзорОбновление контрольной плоскостиОбновление образов инфраструктурыПроцедураОбновление версии KubernetesТребованияПроцедураОбновление рабочих узловДополнительные ресурсыОбзор
Обновление кластера включает несколько компонентов и следует структурированному подходу для обеспечения надежности системы:
- Обновление контрольной плоскости: обновление компонентов контрольной плоскости Kubernetes и базовой инфраструктуры
- Обновление рабочих узлов: обновление рабочих узлов с новыми образами машин и версиями Kubernetes
- Обновления инфраструктуры: изменение спецификаций виртуальных машин, хранилища и сетевых конфигураций
Cluster API оркестрирует декларативные rolling updates с встроенными механизмами безопасности.
Требования
Перед началом убедитесь, что:
- Контрольная плоскость доступна
- Все узлы находятся в состоянии Ready
Для первоначального развертывания смотрите руководство Create Cluster.
Потеря данных во время обновлений
Обновления основаны на механизме rolling update Cluster API. Во время rolling update все ранее подключённые диски удаляются и заменяются новыми дисками на вновь созданных машинах. Убедитесь, что никакая функциональность кластера или рабочие нагрузки не зависят от данных, хранящихся на исходных дисках.
Обновление контрольной плоскости
Обновление контрольной плоскости включает обновление Kubernetes API server, etcd, scheduler и controller manager, а также базовой инфраструктуры виртуальных машин.
Обновление образов инфраструктуры
Обновление базовых образов машин для узлов контрольной плоскости обеспечивает получение патчей безопасности, улучшение производительности и обновление системных компонентов.
Процедура
-
Создайте обновлённый шаблон машины
Скопируйте существующий
DCSMachineTemplate, на который ссылаетсяKubeadmControlPlane, и измените необходимые спецификации: -
Измените спецификации шаблона
Отредактируйте новый шаблон:
- Установите
metadata.nameв<new-template-name> - Обновите по необходимости:
spec.template.spec.vmTemplateNamespec.template.spec.dcsMachineCpuSpec.quantityspec.template.spec.dcsMachineMemorySpec.quantityspec.template.spec.dcsMachineDiskSpec- и др.
- Установите
-
Примените обновлённый шаблон
Примените новый шаблон машины:
-
Обновите ссылку контрольной плоскости
Измените ресурс
KubeadmControlPlane, чтобы он ссылался на новый шаблон: -
Отслеживайте rolling update
Контрольная плоскость автоматически выполнит rolling update:
Обновление версии Kubernetes
Обновление версии Kubernetes включает обновление программного обеспечения контрольной плоскости и поддерживающих образов виртуальных машин.
Требования
- Проверьте совместимость целевой версии Kubernetes с существующими рабочими нагрузками
- Убедитесь, что шаблон VM поддерживает целевую версию Kubernetes. См. OS Support Matrix для сопоставления версий.
- Ознакомьтесь с путём обновления Kubernetes и политикой version skew
Процедура
-
Обновите ссылку на шаблон VM
Обновите
spec.template.spec.vmTemplateNameв используемомDCSMachineTemplate. Новый шаблон VM должен соответствовать целевой версии Kubernetes. -
Обновите версию контрольной плоскости
Измените поле
spec.versionв ресурсеKubeadmControlPlane(обязательно). При необходимости скорректируйте связанные поля (например, стратегию rollout, тайм-ауты drain/deletion или ссылку на инфраструктурный шаблон) для соответствия новой версии и политике обновления. -
Проверьте прогресс обновления
Отслеживайте процесс rolling update:
Обновление рабочих узлов
Обновление рабочих узлов управляется через ресурсы MachineDeployment.
Для подробных процедур обновления рабочих узлов смотрите раздел Upgrading Kubernetes Version.