Управление кластером

Мы рекомендуем производить все действия с нодами, балансировщиками и дисками кластера только через kubectl. При работе в панели управления или через SSH и при включенном автовосстановлении нод все настройки будут сброшены до начального состояния.

Настроить окружение

Для начала работы с кластером нужно настроить окружение, чтобы управлять кластером через все доступные опции kubectl. Подробнее в официальной документации для Linux и Windows.

  1. В зависимости от вашей операционной системы установите консольный клиент Kubernetes kubectl по официальной инструкции.
  2. В панели управления перейдите в раздел Облачная платформа ⟶ Kubernetes.
  3. Откройте страницу кластера вкладка Настройки.
  4. Нажмите Скачать kubeconfig.
  5. Экспортируйте в переменную окружения KUBECONFIG путь (<path>) к ранее скачанному YAML-файлу имя_кластера.yaml.

    Для Linux:

    export KUBECONFIG=<path>

    Для Windows:

    SET KUBECONFIG=<path>
  6. Проверьте корректность настройки, обратившись к кластеру через kubectl:

    ~> kubectl get nodes
    NAME                STATUS   ROLES    AGE   VERSION
    cluster-node-5xx55   Ready    <none>   1m   v1.15.7
    cluster-node-9gtgn   Ready    <none>   1m   v1.15.7
    cluster-node-n9mkn   Ready    <none>   1m   v1.15.7

Статусы кластера

Все действия по изменению конфигурации кластера через API доступны, когда кластер находится в статусе ACTIVE.

Статус кластера Описание
ACTIVE Кластер доступен
PENDING_CREATE Кластер создается
PENDING_ROTATE_CERTS Происходит обновление сертификатов и ключей для Kubernetes Control Plane
PENDING_DELETE Кластер удаляется
PENDING_RESIZE Происходит изменение количества нод или групп нод
PENDING_NODE_REINSTALL Происходит переустановка одной из нод
PENDING_UPGRADE_PATCH_VERSION Происходит обновление кластера до новой патч-версии
PENDING_UPGRADE_MINOR_VERSION Происходит обновление кластера до новой минорной версии
PENDING_UPGRADE_MASTERS_CONFIGURATION Происходит обновление конфигурации мастер нод
PENDING_UPGRADE_CLUSTER_CONFIGURATION Происходит обновление конфигурации кластера
PENDING_UPDATE_NODEGROUP Происходит обновление конфигурации группы нод (например, установка меток)
ERROR Кластер в нерабочем состоянии, создайте тикет
MAINTENANCE Кластер находится в окне обслуживания

Создать группу нод

Группу нод можно создать при создании кластера Kubernetes или в уже работающем кластере добавить дополнительные группы. В панели управления можно создать кластер только с четырьмя группами нод. Чтобы добавить больше четырёх групп нод, используйте API.

Создать группу нод в панели управления

На время создания группы нод кластер перейдет в статус PENDING_RESIZE.

Созданные ноды отобразятся в разделе Облачная платформа ⟶ Серверы.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Kubernetes.
  2. Откройте страницу кластера вкладка Состав кластера.
  3. Нажмите Добавить группу нод.
  4. Настройте конфигурацию нод в группе. Выберите зону, конфигурацию нод (vCPU, RAM, загрузочный локальный или сетевой диск), укажите количество нод в группе.
  5. Добавьте метки — они помогают отличать ноды одной группы от нод другой группы при работе через kubectl. Метка состоит из пары ключ-значение.
  6. Добавьте тейнты — это метки, которые указывают, где нельзя размещать поды. Тейнт состоит из пары ключ-значение и эффекта. Выберите эффект:

    • NoSchedule — новые поды не будут добавляться, а существующие продолжат работу;
    • PreferNoSchedule — новые поды будут добавляться, если в кластере нет других свободных мест;
    • NoExecute — запущенные поды без tolerations будут убраны.

Создать группу нод через Terraform

Подробнее о начале работы с Terraform.

Через Terraform можно создать группу нод в кластере — готовый пример на GitHub.

Изменить конфигурацию нод в группе

  1. Добавьте в кластер новую группу нод с нужными настройками.
  2. Перенесите данные на новые ноды.
  3. Удалите старую группу нод.

Таким же образом, как выше, вы можете изменить конфигурацию через kubectl.

Изменить количество нод в группе

Можно увеличить или уменьшить количество нод в группе.

На время создания или удаления нод кластер перейдет в статус PENDING_RESIZE.

Созданные ноды отобразятся в разделе Облачная платформа ⟶ Серверы. Удаленные ноды, соответственно, перестанут отображаться в списке.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Kubernetes.
  2. Откройте страницу кластера вкладка Состав кластера.
  3. В меню группы нод (⋮) выберите Изменить количество нод.
  4. Укажите нужное количество нод и нажмите Изменить количество.

Метки группы нод

Метки помогают отличать ноды одной группы от нод другой группы при работе через kubectl.

На время добавления меток кластер перейдет в статус PENDING_UPDATE_NODEGROUP.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Kubernetes.
  2. Откройте страницу кластера вкладка Состав кластера.
  3. В меню группы нод (⋮) выберите Управление метками.
  4. Введите ключ и значение метки.
  5. Опционально: нажмите Добавить, чтобы добавить дополнительную метку.

Тейнты группы нод

Тейнты — это метки, которые указывают, где нельзя размещать поды. Подробнее в официальной документации Kubernetes — Taints and Tolerations.

На время добавления тейнтов кластер перейдет в статус PENDING_UPDATE_NODEGROUP.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Kubernetes.
  2. Откройте страницу кластера вкладка Состав кластера.
  3. В меню группы нод (⋮) выберите Управление тейнтами.
  4. Введите ключ и значение тейнта.
  5. Выберите эффект:

    • NoSchedule — новые поды не будут добавляться, а существующие продолжат работу;
    • PreferNoSchedule — новые поды будут добавляться, если в кластере нет других свободных мест;
    • NoExecute — запущенные поды без tolerations будут убраны.
  6. Опционально: нажмите Добавить, чтобы добавить дополнительный тейнт.

Удалить группу нод

На время удаления группы нод кластер перейдет в статус PENDING_RESIZE.

Удаленные ноды перестанут отображаться в разделе Облачная платформа ⟶ Серверы.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Kubernetes.
  2. Откройте страницу кластера вкладка Состав кластера.
  3. В меню группы нод (⋮) выберите Удалить группу.
  4. Введите UUID и нажмите Удалить.

Переустановить ноды

Переустановка всех нод группы может выполняться автоматически через автовосстановление нод. Вы можете переустановить одну или несколько нод вручную.

На время переустановки нод кластер перейдет в статус PENDING_NODE_REINSTALL.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Kubernetes.
  2. Откройте страницу кластера вкладка Состав кластера.
  3. В строке ноды Переустановить ноду (значок Обновить).
  4. Подтвердите переустановку.

Обновить сертификаты

Каждые 30 дней автоматически обновляются сертификаты, используемые для системных компонентов Kubernetes. Также обновляется сертификат, который находится в файле доступа кластера.

Вы можете использовать Service Account Token — в таком случае для авторизации в Kubernetes API обновлять сертификаты не требуется.

На время обновления сертификатов кластер перейдет в статус PENDING_ROTATE_CERTS. После обновления сертификатов вам необходимо скачать обновленный файл kubeconfig и заново настроить окружение.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Kubernetes.
  2. Откройте страницу кластера вкладка Настройки.
  3. В блоке Доступ к кластеру нажмите Обновить сертификаты.

Автовосстановление нод

При включенной опции автовосстановления рабочие ноды будут автоматически переустановлены, если они не отвечают на проверки доступности примерно в течение 15 минут. В процессе восстановления поды перестанут запускаться на неработающей ноде и будут перераспределены на другие ноды.

Подключить автовосстановление нод можно при создании кластера в панели управления или подключить и отключить для уже работающего.

Автовосстановление работает сразу для всех нод кластера. Вы можете переустановить только одну ноду.

Если вы меняли конфигурацию нод вручную для некоторых нод, эти изменения будут сброшены до настроек всей группы нод. Также будут отменены настройки, которые не описаны в манифестах кластера.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Kubernetes.
  2. Откройте страницу кластера вкладка Настройки.
  3. В блоке Автоматизация включите или отключите Автовосстановление нод.

Автообновление патч-версий

Патч-версии Kubernetes содержат исправление ошибок и уязвимостей безопасности минорной версии Kubernetes. Они совместимы между собой в пределах одной минорной версии. Если автообновление включено, кластер будет обновляться до последней доступной патч-версии во время ближайшего окна обслуживания кластера.

Автообновление недоступно для зональных кластеров.

Подключить автообновление версий можно при создании кластера в панели управления. Вы можете подключить/отключить автообновление для уже работающего кластера.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Kubernetes.
  2. Откройте страницу кластера вкладка Настройки.
  3. В блоке Автоматизация включите или отключите Автообновление патч-версий.

Обновить версию вручную

Если для кластера не подключено автообновление патч-версий Kubernetes, можно обновить версию вручную.

На время обновления кластер перейдет в статус PENDING_UPGRADE_MINOR_VERSION. Сначала будут обновлены мастер-ноды, а затем рабочие ноды. Процесс обновления одной ноды кластера может занимать несколько минут.

После запуска остановить обновление будет невозможно.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Kubernetes.
  2. Откройте страницу кластера вкладка Настройки.
  3. В блоке Настройки кластера нажмите Обновить.
  4. Выберите доступную версию и нажмите Запустить обновление.

Окно обслуживания

Во время окна обслуживания могут происходить автоматические действия по обслуживанию вашего кластера, автообновления системных сертификатов.

Каждый день в выбранный час кластер переходит в режим MAINTENANCE, во время которого недоступно любое масштабирование кластера. Этот период длится до двух часов.

При создании кластера в панели управления по умолчанию будет установлено время, соответствующее 4 часам утра в вашем часовом поясе. Вы можете изменить окно обслуживания для уже работающего кластера.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Kubernetes.
  2. Откройте страницу кластера вкладка Настройки.
  3. В блоке Автоматизация выберите новое окно обслуживания.

Безопасность Pod Security Policy

Опция Pod Security Policy включает безопасное создание и обновление подов кластера.

Мы рекомендуем сначала добавить манифесты политик в кластер, а затем включать опцию безопасности.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Kubernetes.
  2. Откройте страницу кластера вкладка Настройки.
  3. В блоке Безопасность включите или отключите Pod Security Policy.