Управление узлами в VMware vSphere
В этом документе описано, как управлять worker-узлами в VMware vSphere после запуска базового cluster. Операции жизненного цикла узлов управляются ресурсами VSphereMachineConfigPool, VSphereMachineTemplate, KubeadmConfigTemplate и MachineDeployment.
Содержание
Предварительные условияШагиОбновление Bootstrap TemplatesУстранение неполадокСледующие шагиПредварительные условия
Перед началом убедитесь, что выполнены следующие условия:
- workload cluster успешно создан. См. Создание cluster в VMware vSphere.
- В worker machine config pool достаточно доступных слотов.
- control plane находится в исправном состоянии и доступен.
- Вы знаете, какие manifest-файлы в настоящее время определяют worker-узлы.
Шаги
Масштабирование worker-узлов
При добавлении новых worker-узлов сначала обновите worker machine config pool, а затем увеличьте значение replica count.
- Добавьте один или несколько новых слотов узлов в
03-vspheremachineconfigpool-worker.yaml. - Обновите
replicasв30-workers-md-0.yaml. - Примените обновленные manifest-файлы.
Используйте следующий порядок:
Примечание: Если MachineDeployment.spec.replicas больше числа доступных слотов в VSphereMachineConfigPool.spec.configs[], новые worker-узлы не смогут быть назначены корректно.
Развертывание обновленной конфигурации worker-узлов
Когда требуется изменить спецификации worker VM, создайте новый VSphereMachineTemplate и обновите MachineDeployment, чтобы он ссылался на него. Это запускает rolling update, который заменяет worker-узлы на узлы с новой конфигурацией.
Templates неизменяемы
Ресурсы VSphereMachineTemplate нельзя изменять на месте. Необходимо создать новый template с новым именем и обновить ссылку в MachineDeployment. Дополнительные сведения см. в документации Cluster API.
К типичным изменениям относятся:
- имя VM template (
spec.template.spec.template) - размер CPU или memory (
numCPUs,memoryMiB) - расположение system disk или data disk (
diskGiB,dataDisks)
-
Экспортируйте существующий template
-
Измените template
Отредактируйте
new-worker-template.yaml:- Укажите
metadata.nameкак новое уникальное имя (например,<cluster_name>-worker-v2) - Обновите нужные поля specification
- Удалите поля, сгенерированные server:
metadata.resourceVersion,metadata.uid,metadata.generation,metadata.creationTimestamp,metadata.managedFields,metadata.annotations["kubectl.kubernetes.io/last-applied-configuration"]иstatus
- Укажите
-
Примените новый template
-
Обновите ссылку в MachineDeployment
Если вам также нужно изменить bootstrap settings, см. ниже Обновление Bootstrap Templates.
-
Отслеживайте rolling update
Откат неудачного обновления
Если rolling update завершится неудачей (например, новые VM не смогут загрузиться), верните ссылку MachineDeployment на имя предыдущего template. Старый template по-прежнему существует, и Cluster API откатится к нему.
Проверка состояния worker-узлов
Выполните следующие команды, чтобы проверить состояние management-cluster и workload-cluster:
Убедитесь в следующем:
- Достигнуто целевое количество worker replica.
- Каждый новый worker-узел присоединяется к cluster.
- В конечном итоге узлы переходят в состояние
Ready.
Обновление Bootstrap Templates
Ресурсы KubeadmConfigTemplate также являются неизменяемыми. Изменения существующего template не запускают rolling update уже созданных machines. Чтобы обновить bootstrap configuration, создайте новый template и обновите ссылку в MachineDeployment.
-
Экспортируйте существующий template
-
Измените template
Отредактируйте
new-bootstrap-template.yaml:- Укажите
metadata.nameкак новое уникальное имя (например,<cluster_name>-worker-bootstrap-v2) - Обновите нужные поля bootstrap configuration
- Удалите те же поля, сгенерированные server, которые перечислены в шаге 2 раздела Развертывание обновленной конфигурации worker-узлов
- Укажите
-
Примените новый template
-
Обновите ссылку в MachineDeployment
Controller Cluster API запускает rolling update. Существующие machines продолжают использовать старую bootstrap configuration, пока их не заменят.
Обновляете версию Kubernetes? Полный workflow обновления control plane и worker-узлов см. в разделе Обновление Cluster в VMware vSphere.
Устранение неполадок
Если управление worker-узлами не выполняется, сначала проверьте следующее:
- Проверьте условия
VSphereMachineна наличиеMachineConfigPoolReady. Если значениеFalse, причина указывает, почему не удалось выделить slot:PoolBoundToOtherConsumer: pool уже привязан к другомуKubeadmControlPlaneилиMachineDeployment.NoAvailableSlots: отсутствуют слоты, соответствующие требуемому datacenter или failure domain.
- Убедитесь, что в worker machine config pool по-прежнему есть свободные слоты.
- Убедитесь, что IP-адреса worker, gateway и параметры DNS заданы корректно.
- Убедитесь, что worker VM template по-прежнему соответствует требуемой версии Kubernetes и требованиям guest-tools.
- Проверьте
VSphereVM.status.addresses, если node ожидает выделения IP.
Следующие шаги
Если вам нужно изменить worker networking, placement или disk topology, продолжите с разделом Расширение deployment cluster в VMware vSphere.