Изменение группы узлов 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.
-
Политику обновлений.
Инструкция по изменению зоны доступности группы узлов приведена в разделе Миграция ресурсов Managed Service for Kubernetes в другую зону доступности.
Чтобы изменить группу узлов Managed Service for Kubernetes:
- Откройте раздел Managed Service for 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, воспользуйтесь методом 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
.
Включить доступ к узлам из интернета
- Перейдите на страницу каталога и выберите сервис Compute Cloud.
- Нажмите на имя нужной ВМ.
- В блоке Сеть нажмите значок
и выберите Добавить публичный IP-адрес. - Укажите нужные настройки и нажмите кнопку Добавить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --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 subnets=<имя_подсети_группы_узлов>, 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
. -
Чтобы назначить 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
. -
Чтобы снять taint-политику с группы узлов, воспользуйтесь методом update для ресурса NodeGroup и передайте в запросе:
- Новый набор taint-политик в параметре
nodeTaints
. Если вы хотите снять все политики, передайте в запросе"nodeTaints": []
. - Обновляемый параметр
nodeTaints
в параметреupdateMask
.
Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask
(одной строкой через запятую).
Управлять облачными метками группы узлов
Вы можете выполнять следующие действия с облачными метками группы узлов Managed Service for Kubernetes:
Добавить облачную метку
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
Добавьте облачную метку группе узлов 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:
Важно
Существующий набор 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:
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
Изменить способ подключения к узлам в группе узлов
Примечание
После изменения способа подключения группа узлов временно перейдет в статус Reconciling
: все узлы в группе будут пересозданы для применения изменений.
-
Откройте раздел Managed Service for Kubernetes в каталоге, где требуется изменить кластер Managed Service for Kubernetes.
-
Нажмите на имя нужного кластера 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 в каталоге, где требуется изменить кластер Managed Service for Kubernetes.
-
Нажмите на имя нужного кластера Managed Service for Kubernetes.
-
Перейдите во вкладку Группы узлов.
-
Выберите нужную группу узлов.
-
Нажмите кнопку Редактировать в правом верхнем углу.
-
Раскройте блок Метаданные и измените, добавьте или удалите метаданные для узлов.
Чтобы добавить метаданные, используйте кнопку Добавить поле. Укажите ключ и значение каждого элемента метаданных в отдельном наборе полей.
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --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
-
Получите все существующие метаданные для группы узлов, воспользовавшись методом REST API get для ресурса NodeGroup, и передайте в запросе идентификатор группы узлов в параметре
nodeGroupId
.Имя группы узлов можно запросить со списком групп узлов в каталоге.
Метаданные будут перечислены в виде пар
ключ=значение
в полеnodeTemplate.metadata
ответа. -
Воспользуйтесь методом REST API update для ресурса NodeGroup и передайте в запросе:
-
Идентификатор группы узлов в параметре
nodeGroupId
. -
Параметр
updateMask
со значениемnodeTemplate.metadata
.Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую). -
Параметр
nodeTemplate.metadata
, в котором перечислены метаданные группы узлов.Внесите нужные изменения в перечень метаданных, который был получен на предыдущем шаге: добавьте, измените или удалите пары
ключ=значение
. Затем передайте обновленный перечень в параметреnodeTemplate.metadata
.Внимание
Метаданные, не перечисленные в параметре
nodeTemplate.metadata
, будут удалены.
-