Изменение группы узлов Managed Service for Kubernetes
Отдельные узлы в группах узлов — это виртуальные машины Yandex Compute Cloud с автоматически сгенерированными именами. Чтобы сконфигурировать узлы, воспользуйтесь инструкциями, приведенными ниже, или другими инструкциями по управлению группами узлов.
Внимание
Не изменяйте параметры ВМ узлов, в том числе имена, сетевые интерфейсы и SSH-ключи, с помощью интерфейсов Compute Cloud или SSH-подключения к ВМ.
Это может нарушить работу отдельных узлов, групп узлов и всего кластера Managed Service for Kubernetes.
Для обращения к группе узлов используйте ее имя или уникальный идентификатор, которые можно узнать с помощью команды:
yc managed-kubernetes node-group list
Результат:
+----------------------+----------------------+-------------+----------------------+---------------------+---------+------+
| ID | CLUSTER ID | NAME | INSTANCE GROUP ID | CREATED AT | STATUS | SIZE |
+----------------------+----------------------+-------------+----------------------+---------------------+---------+------+
| catt3knapbq5******** | cati493bu7ia******** | k8s-demo-ng | cl1tbm76ms7p******** | 2019-11-20 12:01:02 | RUNNING | 2 |
+----------------------+----------------------+-------------+----------------------+---------------------+---------+------+
Перед началом работы убедитесь, что в облаке достаточно свободных ресурсов.
Изменить параметры группы узлов
Вы можете изменить следующие параметры группы узлов Managed Service for Kubernetes:
-
Имя.
-
Описание.
-
Масштабирование: для фиксированного типа — количество узлов Managed Service for Kubernetes, для автоматического — минимальное, максимальное и начальное количество узлов Managed Service for Kubernetes. Тип масштабирования нельзя изменить.
-
Способ назначения IP-адресов узлам группы: только внутренние адреса или также публичные.
-
Список групп безопасности.
Внимание
Не удаляйте группы безопасности, привязанные к работающей группе узлов Managed Service for Kubernetes: это может привести к нарушению ее работы и потере данных.
-
Вычислительные ресурсы и размер диска узлов Managed Service for Kubernetes.
-
Шаблон имени узлов Managed Service for Kubernetes.
-
Политику обновлений.
Инструкция по изменению зоны доступности группы узлов приведена в разделе Миграция ресурсов Kubernetes в другую зону доступности.
Чтобы изменить группу узлов Managed Service for Kubernetes:
- Перейдите на страницу каталога и выберите сервис Managed Service for Kubernetes.
- Нажмите на имя нужного кластера.
- Перейдите во вкладку Группы узлов.
- Выберите нужную группу узлов.
- Нажмите кнопку Редактировать в правом верхнем углу.
- В открывшемся окне измените необходимые параметры.
- Нажмите кнопку Сохранить.
Получите подробную информацию о команде для изменения группы узлов Managed Service for Kubernetes:
yc managed-kubernetes node-group update --help
Для изменения группы узлов Managed Service for Kubernetes воспользуйтесь флагами:
-
--new-name— изменить имя. -
--description— изменить описание. -
--service-account-id,--service-account-name— изменить сервисный аккаунт для ресурсов. -
--node-service-account-id,--node-service-account-name— изменить сервисный аккаунт для узлов Managed Service for Kubernetes. -
--version— изменить версию Kubernetes. -
--network-interface— настройки сети:security-group-ids— идентификаторы групп безопасности.subnets— имена подсетей, в которых будут размещаться узлы.ipv4-address— способ назначения IPv4-адреса.ipv6-address— способ назначения IPv6-адреса.
Параметры
ipv4-addressиipv6-addressотвечают за способ назначения IP-адреса:auto— узлу будет присвоен только внутренний IP-адрес.nat— узлу будут присвоены публичный и внутренний IP-адреса.
-
--network-acceleration-type— выбор типа ускорения сети:-
standard— без ускорения. -
software-accelerated— программно-ускоренная сеть.Важно
Перед включением программно-ускоренной сети убедитесь, что у вас достаточно свободных ресурсов в облаке для создания одного дополнительного узла Managed Service for Kubernetes.
-
-
--node-name— изменить шаблон имени узлов Managed Service for Kubernetes. Для уникальности имени шаблон должен содержать хотя бы одну переменную:{instance_group.id}— идентификатор группы ВМ.{instance.index}— уникальный номер ВМ в группе. Возможные значения: от 1 до N, где N — количество ВМ в группе.{instance.index_in_zone}— номер ВМ в зоне. Уникален в рамках зоны для конкретной группы ВМ.{instance.short_id}— идентификатор ВМ, уникальный в рамках группы. Состоит из четырех букв.{instance.zone_id}— идентификатор зоны.
Например,
prod-{instance.short_id}-{instance_group.id}. Если имя не задано, используется значение по умолчанию:{instance_group.id}-{instance.short_id}. -
--template-labels— изменить облачные метки группы узлов в формате<имя_метки>=<значение_метки>. Можно указать несколько меток через запятую. -
--latest-revision— получить все доступные обновления для текущей версии мастера Managed Service for Kubernetes. -
Настройки масштабирования:
-
--fixed-size— изменить фиксированное количество узлов в группе узлов Managed Service for Kubernetes. -
--auto-scale— изменить настройки автоматического масштабирования кластера Managed Service for Kubernetes:min— минимальное количество узлов в группе.max— максимальное количество узлов в группе.initial— начальное количество узлов в группе.
Тип масштабирования нельзя изменить.
-
-
--auto-upgrade— управлять автоматическими обновлениями. -
Управление окном обновлений:
--anytime-maintenance-window— обновлять в любое время.--daily-maintenance-window— обновлять ежедневно в выбранное время.--weekly-maintenance-window— обновлять в выбранные дни.
Важно
- Не поддерживается использование ключа метаданных
user-dataдля донастройки ВМ и передачи пользовательских данных. - Для управления SSH-ключами можно воспользоваться ключом
ssh-keys. - Для донастройки узлов используйте привилегированные наборы DaemonSet. Например, sysctl-tuner
.
Чтобы изменить группу узлов Managed Service for Kubernetes:
-
Откройте актуальный конфигурационный файл Terraform с описанием группы узлов Managed Service for Kubernetes.
О том, как создать такой файл, см. в разделе Создание группы узлов.
-
Измените параметры в описании группы узлов Managed Service for Kubernetes.
-
Чтобы изменить настройки масштабирования, измените в блоке
scale_policy:-
Для фиксированного масштабирования — значение параметра
fixed_scale.size. -
Для автоматического масштабирования — параметры в блоке
auto_scale:min— минимальное количество узлов в группе.max— максимальное количество узлов в группе.initial— начальное количество узлов в группе.
Тип масштабирования нельзя изменить.
-
-
Чтобы изменить облачные метки группы узлов, добавьте блок
instance_template.labels:resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" { ... instance_template { ... labels { "<имя_метки>"="<значение_метки>" } } } -
Чтобы изменить шаблон имени узлов Managed Service for Kubernetes, измените параметр
instance_template.name. Для уникальности имени шаблон должен содержать хотя бы одну переменную:{instance_group.id}— идентификатор группы ВМ.{instance.index}— уникальный номер ВМ в группе. Возможные значения: от 1 до N, где N — количество ВМ в группе.{instance.index_in_zone}— номер ВМ в зоне. Уникален в рамках зоны для конкретной группы ВМ.{instance.short_id}— идентификатор ВМ, уникальный в рамках группы. Состоит из четырех букв.{instance.zone_id}— идентификатор зоны.
Например,
prod-{instance.short_id}-{instance_group.id}. Если имя не задано, используется значение по умолчанию:{instance_group.id}-{instance.short_id}. -
Чтобы изменить DNS-записи:
-
Создайте внутреннюю или публичную зону DNS.
-
Добавьте блок
instance_template.network_interface.ipv4_dns_records:resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" { ... instance_template { network_interface { ipv4_dns_records { fqdn = "<FQDN_записи_DNS>" dns_zone_id = "<идентификатор_зоны_DNS>" ttl = "<TTL_записи_DNS_в_секундах>" ptr = "<создание_PTR_записи>" } } } }Где
ptr— создание PTR записи:trueилиfalse.В FQDN записи DNS можно использовать шаблон с переменными:
{instance_group.id}— идентификатор группы ВМ.{instance.index}— уникальный номер ВМ в группе. Возможные значения: от 1 до N, где N — количество ВМ в группе.{instance.index_in_zone}— номер ВМ в зоне. Уникален в рамках зоны для конкретной группы ВМ.{instance.short_id}— идентификатор ВМ, уникальный в рамках группы. Состоит из четырех букв.{instance.zone_id}— идентификатор зоны.
-
-
-
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с группами узлов кластера Managed Service for Kubernetes:
- создание и изменение — 60 минут;
- удаление — 20 минут.
Операции, которые длятся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию группы узлов кластера блок
timeouts, например:resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" { ... timeouts { create = "1h30m" update = "1h30m" delete = "60m" } }Подробнее см. в документации провайдера Terraform.
-
Чтобы изменить параметры группы узлов Managed Service for Kubernetes, воспользуйтесь методом update для ресурса NodeGroup.
Чтобы изменить облачные метки группы узлов, передайте значения меток в параметре nodeTemplate.labels.
Чтобы изменить шаблон имени узлов Managed Service for Kubernetes, передайте его в параметре nodeTemplate.name. Для уникальности имени шаблон должен содержать хотя бы одну переменную:
{instance_group.id}— идентификатор группы ВМ.{instance.index}— уникальный номер ВМ в группе. Возможные значения: от 1 до N, где N — количество ВМ в группе.{instance.index_in_zone}— номер ВМ в зоне. Уникален в рамках зоны для конкретной группы ВМ.{instance.short_id}— идентификатор ВМ, уникальный в рамках группы. Состоит из четырех букв.{instance.zone_id}— идентификатор зоны.
Например, prod-{instance.short_id}-{instance_group.id}. Если имя не задано, используется значение по умолчанию: {instance_group.id}-{instance.short_id}.
Чтобы изменить DNS-записи, передайте их настройки в параметре nodeTemplate.v4AddressSpec.dnsRecordSpecs. В FQDN записи DNS можно использовать шаблон с переменными для имени узлов nodeTemplate.name.
Включить доступ к узлам из интернета
- Перейдите на страницу каталога и выберите сервис Managed Service for Kubernetes.
- Нажмите на имя нужного кластера.
- Перейдите на вкладку Группы узлов.
- Выберите нужную группу узлов.
- Нажмите кнопку Редактировать в правом верхнем углу.
- В блоке Сетевые настройки в поле Публичный адрес выберите способ назначения адреса
Автоматически. Узлам будут назначены случайные публичные IP-адреса из пула адресов Yandex Cloud. - Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Для включения доступа к узлам Managed Service for Kubernetes из интернета:
-
Получите подробную информацию о команде для изменения группы узлов Managed Service for Kubernetes:
yc managed-kubernetes node-group update --help -
Выполните команду изменения группы узлов, передав ей параметр
--network-interface:yc managed-kubernetes node-group update <идентификатор_или_имя_группы_узлов> \ ... --network-interface security-group-ids=[<идентификаторы_групп_безопасности>],ipv4-address=natИмена и идентификаторы групп узлов Managed Service for Kubernetes можно получить со списком групп узлов в каталоге.
Альтернативный способ выдать доступ в интернет узлам кластера Managed Service for Kubernetes — создать и настроить NAT-шлюз или NAT-инстанс. В результате с помощью статической маршрутизации трафик будет направлен через шлюз или отдельную ВМ с функциями NAT.
Примечание
Если вы назначили публичные IP-адреса узлам кластера и затем настроили NAT-шлюз или NAT-инстанс, доступ в интернет через публичные адреса пропадет. Подробнее см. в документации сервиса Yandex Virtual Private Cloud.
Назначить taint-политику на группу узлов
Добавление taint-политик пересоздает группу узлов Managed Service for Kubernetes. Сначала удаляются все узлы в группе, затем в нее добавляются узлы с taint-политиками.
Чтобы назначить taint-политику на группу узлов:
-
Откройте актуальный конфигурационный файл Terraform с описанием группы узлов Managed Service for Kubernetes.
О том, как создать такой файл, см. в разделе Создание группы узлов.
-
В описание группы узлов добавьте блок
node_taints:resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" { ... node_taints = [ "<ключ>=<значение>:<taint-эффект>", ... ] ... }Укажите произвольные ключ и значение. В качестве taint-эффекта выберите один из доступных:
NoSchedule— запретить запуск новых подов на узлах группы (уже запущенные поды продолжат работу).PreferNoSchedule— избегать запуска подов на узлах группы, если для запуска этих подов есть свободные ресурсы в других группах.NoExecute— завершить работу подов на узлах этой группы, расселить их в другие группы, а запуск новых подов запретить.
Можно назначить несколько taint-политик, в этом случае укажите их через запятую.
-
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с группами узлов кластера Managed Service for Kubernetes:
- создание и изменение — 60 минут;
- удаление — 20 минут.
Операции, которые длятся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию группы узлов кластера блок
timeouts, например:resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" { ... timeouts { create = "1h30m" update = "1h30m" delete = "60m" } }Подробнее см. в документации провайдера Terraform.
-
Чтобы назначить taint-политику на группу узлов, воспользуйтесь методом update для ресурса NodeGroup и передайте в запросе:
- Taint-политики в параметре
nodeTaints. - Обновляемый параметр
nodeTaintsв параметреupdateMask.
Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).
Снять taint-политику с группы узлов
Удаление taint-политик пересоздает группу узлов Managed Service for Kubernetes. Сначала удаляются все узлы в группе, затем в нее добавляются узлы с новой конфигурацией.
Чтобы снять taint-политику с группы узлов:
-
Откройте актуальный конфигурационный файл Terraform с описанием группы узлов Managed Service for Kubernetes.
О том, как создать такой файл, см. в разделе Создание группы узлов.
-
Удалите из описания группы узлов ненужные taint-политики в блоке
node_taints. -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с группами узлов кластера Managed Service for Kubernetes:
- создание и изменение — 60 минут;
- удаление — 20 минут.
Операции, которые длятся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию группы узлов кластера блок
timeouts, например:resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" { ... timeouts { create = "1h30m" update = "1h30m" delete = "60m" } }Подробнее см. в документации провайдера Terraform.
-
Чтобы снять taint-политику с группы узлов, воспользуйтесь методом update для ресурса NodeGroup и передайте в запросе:
- Новый набор taint-политик в параметре
nodeTaints. Если вы хотите снять все политики, передайте в запросе"nodeTaints": []. - Обновляемый параметр
nodeTaintsв параметреupdateMask.
Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).
Управлять облачными метками группы узлов
Вы можете выполнять следующие действия с облачными метками группы узлов Managed Service for Kubernetes:
Добавить облачную метку
- Перейдите на страницу каталога и выберите сервис Managed Service for Kubernetes.
- Нажмите на имя нужного кластера.
- Перейдите во вкладку Группы узлов.
- Выберите нужную группу узлов.
- Нажмите кнопку Редактировать в правом верхнем углу.
- В поле Метки нажмите Добавить метку.
- Введите ключ и значение и нажмите Enter.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
Добавьте облачную метку группе узлов Managed Service for Kubernetes:
yc managed-kubernetes node-group add-labels my-node-group --labels new_label=test_label
Результат:
done (28s)
id: catpl8c44kii********
cluster_id: catcsqidoos7********
...
-
Откройте актуальный конфигурационный файл Terraform с описанием группы узлов Managed Service for Kubernetes.
О том, как создать такой файл, см. в разделе Создание группы узлов.
-
Добавьте в описание группы узлов Managed Service for Kubernetes параметр
labels:resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" { cluster_id = yandex_kubernetes_cluster.<имя_кластера>.id ... labels = { "<облачная_метка>" = "<значение>" } ... } -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с группами узлов кластера Managed Service for Kubernetes:
- создание и изменение — 60 минут;
- удаление — 20 минут.
Операции, которые длятся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию группы узлов кластера блок
timeouts, например:resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" { ... timeouts { create = "1h30m" update = "1h30m" delete = "60m" } } -
Подробнее см. в документации провайдера Terraform.
Изменить облачную метку
Чтобы изменить облачную метку, потребуется удалить ее и создать заново:
- Перейдите на страницу каталога и выберите сервис Managed Service for Kubernetes.
- Нажмите на имя нужного кластера.
- Перейдите во вкладку Группы узлов.
- Выберите нужную группу узлов.
- Нажмите кнопку Редактировать в правом верхнем углу.
- В поле Метки нажмите на крестик рядом с нужной меткой, чтобы удалить ее.
- Нажмите Добавить метку и введите новые ключ и/или значение метки.
- Нажмите Enter, а затем — Сохранить.
Измените облачную метку группы узлов Managed Service for Kubernetes:
Важно
Существующий набор меток (labels) полностью перезаписывается набором, переданным в запросе.
yc managed-kubernetes node-group update my-node-group --labels test_label=my_ng_label
Результат:
done (3s)
id: catpl8c44kii********
cluster_id: catcsqidoos7********
...
-
Откройте актуальный конфигурационный файл Terraform с описанием группы узлов Managed Service for Kubernetes.
О том, как создать такой файл, см. в разделе Создание группы узлов.
-
Измените в описании группы узлов Managed Service for Kubernetes значения параметра
labels:resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" { cluster_id = yandex_kubernetes_cluster.<имя_кластера>.id ... labels = { "<облачная_метка>" = "<значение>" ... } ... } -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с группами узлов кластера Managed Service for Kubernetes:
- создание и изменение — 60 минут;
- удаление — 20 минут.
Операции, которые длятся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию группы узлов кластера блок
timeouts, например:resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" { ... timeouts { create = "1h30m" update = "1h30m" delete = "60m" } } -
Подробнее см. в документации провайдера Terraform.
Удалить облачную метку
- Перейдите на страницу каталога и выберите сервис Managed Service for Kubernetes.
- Нажмите на имя нужного кластера.
- Перейдите во вкладку Группы узлов.
- Выберите нужную группу узлов.
- Нажмите кнопку Редактировать в правом верхнем углу.
- В поле Метки нажмите на крестик рядом с нужной меткой.
- Нажмите кнопку Сохранить.
Удалите облачную метку группы узлов Managed Service for Kubernetes:
yc managed-kubernetes node-group remove-labels my-node-group --labels test_label
Результат:
done (2s)
id: catpl8c44kii********
cluster_id: catcsqidoos7********
...
-
Откройте актуальный конфигурационный файл Terraform с описанием группы узлов Managed Service for Kubernetes.
О том, как создать такой файл, см. в разделе Создание группы узлов.
-
Удалите из описания группы узлов Managed Service for Kubernetes ненужные облачные метки в блоке
labels. -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с группами узлов кластера Managed Service for Kubernetes:
- создание и изменение — 60 минут;
- удаление — 20 минут.
Операции, которые длятся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию группы узлов кластера блок
timeouts, например:resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" { ... timeouts { create = "1h30m" update = "1h30m" delete = "60m" } } -
Подробнее см. в документации провайдера Terraform.
Изменить способ подключения к узлам в группе узлов
Примечание
После изменения способа подключения группа узлов временно перейдет в статус Reconciling: все узлы в группе будут пересозданы для применения изменений.
-
Перейдите на страницу каталога и выберите сервис Managed Service for Kubernetes.
-
Нажмите на имя нужного кластера.
-
Перейдите во вкладку Группы узлов.
-
Выберите нужную группу узлов.
-
Нажмите кнопку Редактировать в правом верхнем углу.
-
Измените настройки для способов подключения:
-
Чтобы включить или выключить доступ к узлам через OS Login, используйте опцию Доступ по OS Login.
Важно
Если доступ через OS Login включен, то доступ по SSH-ключам будет невозможен.
Настройка и использование OS Login подробно рассмотрены в разделе Подключение к узлу через OS Login.
-
Чтобы включить доступ к узлам с использованием SSH-ключей:
- Убедитесь, что доступ через OS Login выключен.
- Убедитесь, что в метаданных группы узлов есть хотя бы один SSH-ключ. При необходимости добавьте или удалите ключи, изменив метаданные с ключом
ssh-keys.
Подготовка реквизитов, настройка и использование SSH-ключей подробно рассмотрены в разделе Подключение к узлу по SSH.
-
Чтобы выключить доступ к узлам с использованием SSH-ключей, выполните одно из действий:
-
Включите доступ через OS Login.
-
Измените метаданные, удалив метаданные с ключом
ssh-keys.После удаления этих метаданных вы не сможете подключиться к узлам кластера Managed Service for Kubernetes, пока не добавите один или несколько SSH-ключей.
-
-
-
Нажмите кнопку Сохранить.
-
Чтобы включить или выключить доступ к узлам через OS Login, измените значение метаданных с ключом
enable-oslogin:true— доступ включен;false— доступ выключен.
Важно
Если доступ через OS Login включен, то доступ по SSH-ключам будет невозможен.
Настройка и использование OS Login подробно рассмотрены в разделе Подключение к узлу через OS Login.
-
Чтобы включить доступ к узлам с использованием SSH-ключей:
- Убедитесь, что доступ через OS Login выключен.
- Убедитесь, что в метаданных группы узлов есть хотя бы один SSH-ключ. При необходимости добавьте или удалите ключи, изменив метаданные с ключом
ssh-keys.
Подготовка реквизитов, настройка и использование SSH-ключей подробно рассмотрены в разделе Подключение к узлу по SSH.
-
Чтобы выключить доступ к узлам с использованием SSH-ключей, выполните одно из действий:
-
Включите доступ через OS Login.
-
Измените метаданные, удалив метаданные с ключом
ssh-keys.После удаления этих метаданных вы не сможете подключиться к узлам кластера Managed Service for Kubernetes, пока не добавите один или несколько SSH-ключей.
-
-
Чтобы включить или выключить доступ к узлам через OS Login, измените значение метаданных с ключом
enable-oslogin:true— доступ включен;false— доступ выключен.
Важно
Если доступ через OS Login включен, то доступ по SSH-ключам будет невозможен.
Настройка и использование OS Login подробно рассмотрены в разделе Подключение к узлу через OS Login.
-
Чтобы включить доступ к узлам с использованием SSH-ключей:
- Убедитесь, что доступ через OS Login выключен.
- Убедитесь, что в метаданных группы узлов есть хотя бы один SSH-ключ. При необходимости добавьте или удалите ключи, изменив метаданные с ключом
ssh-keys.
Подготовка реквизитов, настройка и использование SSH-ключей подробно рассмотрены в разделе Подключение к узлу по SSH.
-
Чтобы выключить доступ к узлам с использованием SSH-ключей, выполните одно из действий:
-
Включите доступ через OS Login.
-
Измените метаданные, удалив метаданные с ключом
ssh-keys.После удаления этих метаданных вы не сможете подключиться к узлам кластера Managed Service for Kubernetes, пока не добавите один или несколько SSH-ключей.
-
-
Чтобы включить или выключить доступ к узлам через OS Login, измените значение метаданных с ключом
enable-oslogin:true— доступ включен;false— доступ выключен.
Важно
Если доступ через OS Login включен, то доступ по SSH-ключам будет невозможен.
Настройка и использование OS Login подробно рассмотрены в разделе Подключение к узлу через OS Login.
-
Чтобы включить доступ к узлам с использованием SSH-ключей:
- Убедитесь, что доступ через OS Login выключен.
- Убедитесь, что в метаданных группы узлов есть хотя бы один SSH-ключ. При необходимости добавьте или удалите ключи, изменив метаданные с ключом
ssh-keys.
Подготовка реквизитов, настройка и использование SSH-ключей подробно рассмотрены в разделе Подключение к узлу по SSH.
-
Чтобы выключить доступ к узлам с использованием SSH-ключей, выполните одно из действий:
-
Включите доступ через OS Login.
-
Измените метаданные, удалив метаданные с ключом
ssh-keys.После удаления этих метаданных вы не сможете подключиться к узлам кластера Managed Service for Kubernetes, пока не добавите один или несколько SSH-ключей.
-
Изменить метаданные
Важно
Настройки метаданных могут повлиять на поведение и работоспособность узлов в группе. Меняйте эти настройки только если вы точно знаете, что хотите сделать.
Передача пользовательских данных в метаданных с ключом user-data не поддерживается.
После изменения метаданных группа узлов временно перейдет в статус Reconciling: все узлы в группе будут пересозданы для применения изменений.
-
Перейдите на страницу каталога и выберите сервис Managed Service for Kubernetes.
-
Нажмите на имя нужного кластера.
-
Перейдите во вкладку Группы узлов.
-
Выберите нужную группу узлов.
-
Нажмите кнопку Редактировать в правом верхнем углу.
-
Раскройте блок Метаданные и измените, добавьте или удалите метаданные для узлов.
Чтобы добавить метаданные, используйте кнопку Добавить поле. Укажите ключ и значение каждого элемента метаданных в отдельном наборе полей.
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
-
Чтобы добавить или изменить метаданные с определенным ключом:
-
Посмотрите описание команды CLI для добавления и обновления метаданных группы узлов Managed Service for Kubernetes:
yc managed-kubernetes node-group add-metadata --help -
Чтобы добавить новые метаданные или изменить их, если они существуют, выполните команду:
yc managed-kubernetes node-group add-metadata \ --name <имя_группы_узлов> \ --metadata <ключ>=<значение>Имя группы узлов можно запросить со списком групп узлов в каталоге.
Перечень существующих метаданных можно запросить вместе с подробной информацией о группе узлов.
Совет
Используйте параметр
--metadata-from-fileвместо--metadata, если нужно получить значение из файла:--metadata-from-file <ключ>=<путь_к_файлу_со_значением>Значение ключа будет считано из файла. Это может быть полезно, если значение слишком длинное, чтобы передавать его в явном виде, или содержит переносы строк и другие спецсимволы.
-
-
Чтобы удалить метаданные с определенным ключом:
-
Посмотрите описание команды CLI для удаления метаданных группы узлов Managed Service for Kubernetes:
yc managed-kubernetes node-group remove-metadata --help -
Удалите существующие метаданные:
yc managed-kubernetes node-group remove-metadata \ --name <имя_группы_узлов> \ --keys <ключ>Имя группы узлов можно запросить со списком групп узлов в каталоге.
Перечень существующих метаданных можно запросить вместе с подробной информацией о группе узлов.
-
-
Откройте актуальный конфигурационный файл Terraform с описанием группы узлов Managed Service for Kubernetes.
О том, как создать такой файл, см. в разделе Создание группы узлов.
-
Чтобы добавить, изменить или удалить метаданные с определенным ключом, измените перечень ключей и значений в параметре
instance_template.metadata. Если такого параметра нет — добавьте его.resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" { cluster_id = yandex_kubernetes_cluster.<имя_кластера>.id ... instance_template { metadata = { "<ключ>" = "<значение>" ... } ... } ... }Совет
Используйте функцию
file(), если нужно получить значение из файла:"<ключ>" = file("<путь_к_файлу_со_значением>")Значение ключа будет считано из файла. Это может быть полезно, если значение слишком длинное, чтобы передавать его в явном виде, или содержит переносы строк и другие спецсимволы.
-
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с группами узлов кластера Managed Service for Kubernetes:
- создание и изменение — 60 минут;
- удаление — 20 минут.
Операции, которые длятся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию группы узлов кластера блок
timeouts, например:resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" { ... timeouts { create = "1h30m" update = "1h30m" delete = "60m" } } -
Подробнее см. в документации провайдера Terraform.
-
Получите все существующие метаданные для группы узлов, воспользовавшись методом REST API get для ресурса NodeGroup, и передайте в запросе идентификатор группы узлов в параметре
nodeGroupId.Имя группы узлов можно запросить со списком групп узлов в каталоге.
Метаданные будут перечислены в виде пар
ключ=значениев полеnodeTemplate.metadataответа. -
Воспользуйтесь методом REST API update для ресурса NodeGroup и передайте в запросе:
-
Идентификатор группы узлов в параметре
nodeGroupId. -
Параметр
updateMaskсо значениемnodeTemplate.metadata.Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую). -
Параметр
nodeTemplate.metadata, в котором перечислены метаданные группы узлов.Внесите нужные изменения в перечень метаданных, который был получен на предыдущем шаге: добавьте, измените или удалите пары
ключ=значение. Затем передайте обновленный перечень в параметреnodeTemplate.metadata.Внимание
Метаданные, не перечисленные в параметре
nodeTemplate.metadata, будут удалены.
-