Изменение группы узлов 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.
-
Способ назначения IP-адреса: только внутреннего или также внешнего.
-
Список групп безопасности.
Внимание
Не удаляйте группы безопасности, привязанные к работающей группе узлов Managed Service for Kubernetes: это может привести к нарушению ее работы и потере данных.
-
Вычислительные ресурсы и размер диска узлов Managed Service for Kubernetes.
-
Шаблон имени узлов Managed Service for Kubernetes.
-
Политику обновлений.
Внимание
Не изменяйте параметры виртуальных машин, принадлежащих кластеру Managed Service for Kubernetes, с помощью интерфейсов Yandex Compute Cloud. Это приведет к нарушению работы группы узлов и всего кластера 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.
-
-
--container-runtime
— изменить среду запуска контейнеров,docker
илиcontainerd
. -
--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. -
--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.
-
Чтобы изменить среду запуска контейнеров, добавьте блок
instance_template.container_runtime
:resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" { ... instance_template { ... container_runtime { type = "<тип_среды>" } } }
Где
type
— тип среды запуска контейнеров:docker
илиcontainerd
. -
Чтобы изменить облачные метки группы узлов, добавьте блок
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.
Чтобы изменить среду запуска контейнеров, передайте значение docker
или containerd
в параметре nodeTemplate.containerRuntimeSettings.type
.
Чтобы изменить облачные метки группы узлов, передайте значения меток в параметре 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.
Управлять облачными метками группы узлов
Вы можете выполнять следующие действия с облачными метками группы узлов 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