[Документация Yandex Cloud](../../index.md) > [Yandex Cloud Stackland](../index.md) > Концепции > Масштабирование кластера

# Масштабирование кластера

В Stackland состав узлов кластера можно менять после установки: добавлять новые узлы и выводить существующие. Масштабирование и обновление кластера — операции, которые не могут выполняться одновременно.

## Ресурс StacklandHostConfig {#stacklandhostconfig}

Каждый узел кластера описывается отдельным экземпляром кастомного ресурса `StacklandHostConfig` в пространстве имен `stackland-install`. Существующие узлы получают соответствующие ресурсы в процессе установки или обновления кластера. Ресурс содержит:

* `spec.role` — роль узла: `control-plane`, `worker` или `combined`.
* `spec.disksConfig` — список дисков узла. Обязательно указывается установочный диск.
* `spec.networkConfig` — параметры сетевого подключения: интерфейсы, адреса, маршруты, DNS-серверы, NTP-серверы.
* `spec.features` — дополнительные возможности узла, например поддержка GPU.

Поля, не заданные явно в ресурсе, наследуются из шаблона `StacklandClusterConfig`, заданного при установке кластера.

Создание ресурса инициирует подключение нового узла к кластеру. Удаление ресурса инициирует вывод узла: узел закрывается от новой нагрузки (cordon), эвакуируется (drain), удаляется из Kubernetes, после чего его операционная система переводится в режим обслуживания (Maintenance mode). За счет финализатора ресурс не удаляется до фактического завершения операции.

## Жизненный цикл узла {#lifecycle}

Состояние узла отражается в поле `status.phase` ресурса `StacklandHostConfig`:

* `Pending` — ресурс создан, операция ожидает запуска.
* `Installing` — выполняется подключение узла к кластеру.
* `Installed` — узел подключен и работает в кластере.
* `Removing` — выполняется вывод узла из кластера.
* `Failed` — операция завершилась с ошибкой.

## Роли узлов {#node-roles}

Роль узла задается в поле `spec.role` и определяет назначение узла:

* `control-plane` — узел управляющего слоя. Обеспечивает работу API Kubernetes, etcd и контроллеров.
* `worker` — узел рабочей нагрузки. Запускает поды пользовательских приложений.
* `combined` — узел совмещает обе роли. Используется в небольших кластерах.

Для отказоустойчивости управляющего слоя рекомендуется поддерживать нечетное число узлов `control-plane`, минимум три.

Роль существующего узла нельзя изменить. Чтобы сменить роль, удалите узел и добавьте его заново с новой ролью.

## Связь с другими ресурсами {#related-resources}

* `StacklandClusterConfig` — шаблон конфигурации кластера, который задается при установке. Из него наследуются значения по умолчанию для `StacklandHostConfig`.
* `PlatformConfig` — конфигурация платформы. Определяет режим работы кластера, в том числе политики обработки узлов.
* `TargetInstallationState` — состояние установки и обновления кластера. Масштабирование не выполняется, если кластер находится в стадии обновления на новую версию. Запрошенное в этот момент масштабирование запускается автоматически после завершения обновления.

## См. также {#see-also}

* [Масштабирование кластера](../operations/cluster/scale-cluster.md)
* [Обновить кластер](../operations/cluster/upgrade-cluster.md)