База знаний LinxCloud Services

Управление группой worker-узлов

Перед выполнением любой операции с кластером из Terraform ознакомьтесь с информацией в разделе Использование Terraform.

Добавить группу worker-узлов


Личный кабинет

  1. Перейдите в личный кабинет LinxCloud.
  2. Выберите проект и регион, где находится нужный кластер.
  3. Перейдите в раздел Контейнеры → Кластеры Kubernetes.
  4. Раскройте меню нужного кластера и выберите пункт Добавить группу узлов.
  5. Задайте настройки для группы узлов.
  6. Нажмите кнопку Добавить группу узлов.


Terraform

  1. Определите, какие типы виртуальных машин будет использоваться для группы worker-узлов кластера:
    1. Выполните команду:
      openstack flavor list

      Будут выведены доступные типы виртуальных машин.

    2. Выберите нужные типы виртуальных машин и запишите их имена из колонки Name.
  2. Добавьте ресурс lcs_kubernetes_node_group и нужные источники данных в файл конфигурации Terraform:
    1...
    2
    3# Уже описанная конфигурация для кластера
    4resource "lcs_kubernetes_cluster" "k8s-cluster" { ... }
    5
    6...
    7
    8# Новый источник данных — тип виртуальной машины для узлов
    9data "lcs_compute_flavor" "k8s-node-group-flavor" {
    10 name = "<выбранный тип виртуальной машины>"
    11}
    12
    13# Новый ресурс — группа worker-узлов
    14resource "lcs_kubernetes_node_group" "k8s-node-group" {
    15  name = "k8s-node-group"
    16  node_count = <количество узлов в группе>
    17  cluster_id = lcs_kubernetes_cluster.k8s-cluster.id
    18  flavor_id = data.lcs_compute_flavor.k8s-node-group-flavor.id
    19}
    
    

     

    При необходимости задайте дополнительные настройки, приведенные в документации ресурса.

  3. Проверьте конфигурационный файл Terraform на корректность:
    terraform validate
  4. Ознакомьтесь с планируемыми изменениями:
    terraform plan
  5. Примените планируемые изменения:
    terraform apply
    

 

Настроить параметры масштабирования

Размер группы worker-узлов можно изменить вручную или настроить автомасштабирование.

Эти операции подробно описаны в разделе Масштабирование узлов кластера.

Настроить метки и ограничения

Настраивайте ограничения (taints) с осторожностью, если на узле уже размещена рабочая нагрузка.

Перенастройка ограничений может привести к расселению (eviction) подов на другие узлы. Если на них не хватит ресурсов для размещения этих подов, это приведет к частичной или полной недоступности приложений, которые используют эти поды.

Метки и ограничения можно задать как с помощью интерфейсов, поддерживаемых платформой LinxCloud (личный кабинет и Terraform), так и с помощью kubectl. При назначении меток и ограничений учитывайте, что метки и ограничения, заданные с помощью интерфейсов платформы, периодически синхронизируются с кластером Kubernetes (только в одном направлении). При синхронизации метки, заданные с помощью платформы, перезапишут метки и ограничения, которые были заданы с помощью kubectl, если их ключи совпадают. Другие метки и ограничения, которые были заданы с помощью kubectl и не были перезаписаны значениями от платформы, действуют в кластере, но не отображаются, например, в личном кабинете или состоянии (state) Terraform.

Личный кабинет

  1. Перейдите в личный кабинет LinxCloud.
  2. Выберите проект и регион, где находится нужный кластер.
  3. Перейдите в раздел Контейнеры → Кластеры Kubernetes.
  4. Найдите нужный кластер и группу узлов в нем.
  5. Раскройте меню группы узлов и выберите пункт Labels и Taints.
  6. В появившемся окне выполните необходимые действия.
    • Действия по управлению метками (labels):
      • Добавить новую метку в виде пары ключ/значение.
      • Изменить ключ или значение существующей метки.
      • Удалить существующую метку.
    • Действия по управлению ограничениями (taints):
      • Добавить новое ограничение, указав для него эффект и метку пода в виде пары ключ/значение.
      • Изменить существующее ограничение.
      • Удалить существующее ограничение.

Terraform

  1. Измените нужный ресурс lcs_kubernetes_node_group в файле конфигурации Terraform :1...
    2
    3# Уже описанная конфигурация для группы узлов
    4resource "lcs_kubernetes_node_group" "k8s-node-group" {
    5 name = "k8s-node-group"
    6
    7 ...
    8
    9 # Метки
    10
    11 # Существующая метка
    12 labels {
    13 key = "my_awesome_value"
    14 value = "my_another_awesome_value"
    15 }
    16
    17 # Новая метка
    18 labels {
    19 key = "<ключ>"
    20 value = "<значение>"
    21 }
    22
    23 # Ограничения
    24
    25 # Существующее ограничение
    26 taints {
    27 key = "taint_key_1"
    28 value = "taint_value_1"
    29 effect = "PreferNoSchedule"
    30 }
    31
    32 # Новое ограничение
    33 taints {
    34 key = "<ключ>"
    35 value = "<значение>"
    36 effect = "<эффект>"
    37 }
    38
    39 ...
    40}
    41
    42...

    При необходимости измените или удалите существующие метки (labels) и ограничения (taints).

    Если блоков labels и taints еще нет, создайте соответствующие блоки.

  2. Проверьте конфигурационный файл Terraform на корректность:
    terraform validate
  3. Ознакомьтесь с планируемыми изменениями:
    terraform plan
  4. Примените планируемые изменения:
    terraform apply

 

Подробнее в разделе Метки и ограничения.

Настроить параметры обновления

Для повышения скорости сервис контейнеров обновляет сразу несколько worker-узлов в группе. Чтобы максимально сохранить доступность ваших приложений и сервисов во время обновления, укажите максимальный процент недоступных узлов для группы узлов перед обновлением кластера.

Личный кабинет

  1. Перейдите в личный кабинет LinxCloud.
  2. Выберите проект и регион, где находится нужный кластер.
  3. Перейдите в раздел Контейнеры → Кластеры Kubernetes.
  4. Найдите нужный кластер и группу узлов в нем.
  5. Раскройте меню группы узлов и выберите пункт Настройки обновления нод.
  6. В появившемся окне задайте нужный процент.
  7. Нажмите кнопку Подтвердить.


Terraform

  1. Добавьте или измените в файле конфигурации Terraform для нужного ресурса lcs_kubernetes_node_group параметр max_node_unavailable:1...
    2
    3# Уже описанная конфигурация для группы узлов
    4resource "lcs_kubernetes_node_group" "k8s-node-group" {
    5 name = "k8s-node-group"
    6
    7 ...
    8
    9 # Процент недоступных узлов
    10 max_node_unavailable = <нужный процент, целое число от 1 до 100>
    11}
    12
    13...

  2. Проверьте конфигурационный файл Terraform на корректность:
    terraform validate
  3. Ознакомьтесь с планируемыми изменениями:
    terraform plan
  4. Примените планируемые изменения:
    terraform apply
    

Подробнее об устройстве процедуры обновления в разделе Обновление версии кластера.

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

Эту операцию можно выполнить только когда кластер запущен.

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

Личный кабинет

  1. Перейдите в личный кабинет LinxCloud.
  2. Выберите проект и регион, где находится нужный кластер.
  3. Перейдите в раздел Контейнеры → Кластеры Kubernetes.
  4. Найдите нужный кластер и группу узлов в нем.
  5. Раскройте меню группы узлов и выберите пункт Удалить.
  6. Нажмите кнопку Подтвердить.


Terraform

  1. Удалите нужный ресурс lcs_kubernetes_node_group из файла конфигурации Terraform.
  2. Проверьте конфигурационный файл Terraform на корректность:
    terraform validate
  3. Ознакомьтесь с планируемыми изменениями:
    terraform plan
  4. Примените планируемые изменения:
    terraform apply
Что вас интересует?
Получить демо-доступ

Спасибо за ваш запрос, мы свяжемся с вами в ближайшее время!