Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for Kubernetes
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
    • Все инструкции
    • Подключение к узлу по SSH
    • Подключение к узлу через OS Login
    • Обновление Kubernetes
    • Настройка автомасштабирования
      • Информация об имеющихся группах узлов
      • Создание группы узлов
      • Подключение к узлу по SSH
      • Подключение к узлу через OS Login
      • Настройка автомасштабирования
      • Изменение группы узлов
      • Управление Kubernetes-метками узлов
      • Удаление группы узлов
    • Подключение внешних узлов к кластеру
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Обучающие курсы

В этой статье:

  • Ограничения в именах и значениях Kubernetes-меток
  • Назначить Kubernetes-метки при создании группы узлов
  • Назначить Kubernetes-метку на уже созданную группу узлов
  • Снять Kubernetes-метку с группы узлов
  1. Пошаговые инструкции
  2. Управление группой узлов
  3. Управление Kubernetes-метками узлов

Управление Kubernetes-метками узлов

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 21 апреля 2025 г.
  • Ограничения в именах и значениях Kubernetes-меток
  • Назначить Kubernetes-метки при создании группы узлов
  • Назначить Kubernetes-метку на уже созданную группу узлов
  • Снять Kubernetes-метку с группы узлов

Отдельные узлы в группах узлов — это виртуальные машины Yandex Compute Cloud с автоматически сгенерированными именами. Чтобы сконфигурировать узлы, воспользуйтесь инструкциями, приведенными ниже, или другими инструкциями по управлению группами узлов.

Внимание

Не изменяйте параметры ВМ узлов, в том числе имена, сетевые интерфейсы и SSH-ключи, с помощью интерфейсов Compute Cloud или SSH-подключения к ВМ.

Это может нарушить работу отдельных узлов, групп узлов и всего кластера Managed Service for Kubernetes.

Ограничения в именах и значениях Kubernetes-метокОграничения в именах и значениях Kubernetes-меток

Kubernetes-метки представляют собой пары ключ:значение.

Ключи Kubernetes-меток узлов могут состоять из двух частей: префикса и имени, которые разделены знаком /.

Префикс — необязательная часть ключа. Требования к префиксу:

  • Должен быть поддоменом DNS — серия DNS-меток, разделенных точками ..
  • Длина — до 253 символов.
  • За последним символом — /.

Имя — обязательная часть ключа. Требования к имени:

  • Длина — до 63 символов.
  • Может содержать строчные буквы латинского алфавита, цифры и символы -_..
  • Первый и последний символы — буква или цифра.

Для значения действуют те же правила, что и для имени.

Пример метки: app.kubernetes.io/name: mysql, где app.kubernetes.io/ — префикс, name — имя, mysql — значение.

Назначить Kubernetes-метки при создании группы узловНазначить Kubernetes-метки при создании группы узлов

Вы можете добавлять Kubernetes-метки сразу на все узлы Managed Service for Kubernetes в группе узлов. Для этого задайте набор меток в параметре node_labels при создании группы узлов Managed Service for Kubernetes.

  1. Создайте кластер Managed Service for Kubernetes.

    Вы можете использовать уже работающий кластер Managed Service for Kubernetes или создать новый.

  2. Создайте группу узлов с Kubernetes-метками:

    Консоль управления
    CLI
    Terraform
    API
    1. В консоли управления выберите каталог, в котором создан кластер Managed Service for Kubernetes.
    2. В списке сервисов выберите Managed Service for Kubernetes.
    3. Выберите кластер Managed Service for Kubernetes, для которого необходимо создать группу узлов.
    4. На странице кластера Managed Service for Kubernetes перейдите на вкладку Управление узлами.
    5. Нажмите кнопку Создать группу узлов.
    6. Введите имя группы узлов Managed Service for Kubernetes.
    7. В поле Версия Kubernetes выберите версию Kubernetes для узлов Managed Service for Kubernetes.
    8. В блоке Масштабирование:
      • Выберите тип политики масштабирования.
      • Укажите количество узлов в группе узлов Managed Service for Kubernetes.
    9. В блоке В процессе создания и обновления разрешено укажите максимальное количество виртуальных машин, на которое можно превысить и уменьшить размер группы Managed Service for Kubernetes.
    10. В блоке Вычислительные ресурсы:
      • Выберите платформу.
      • Укажите необходимое количество vCPU и гарантированную долю vCPU, а также объем RAM.
    11. В блоке Хранилище:
      • Укажите Тип диска узла Managed Service for Kubernetes:
        • HDD — стандартный сетевой диск, сетевое блочное хранилище на HDD-накопителе.
        • SSD — быстрый сетевой диск, сетевое блочное хранилище на SSD-накопителе.
        • Нереплицируемый SSD — сетевой диск с повышенной производительностью, реализованной за счет устранения избыточности. Размер такого диска можно менять только с шагом 93 ГБ.
        • SSD IO — обладает теми же скоростными характеристиками, что и Нереплицируемый SSD, и одновременно обеспечивает избыточность. Размер такого диска можно менять только с шагом 93 ГБ.
      • Укажите размер диска узла Managed Service for Kubernetes.
    12. В блоке Сетевые настройки:
      • В поле Публичный адрес выберите способ назначения адреса:
        • Автоматически — чтобы назначить случайный IP-адрес из пула адресов Yandex Cloud.
        • Без адреса — чтобы не назначать публичный IP-адрес.
      • Укажите расположение узлов Managed Service for Kubernetes по зонам доступности и сетям.
    13. В блоке Доступ укажите данные для доступа на узел Managed Service for Kubernetes:
      • В поле Логин введите имя пользователя.
      • В поле SSH-ключ вставьте содержимое файла публичного ключа.
    14. В блоке Настройки окна обновлений:
      • В поле Частота обновлений / Отключение выберите окно для обновлений:
        • Отключено — отключение автоматических обновлений.
        • В любое время — обновления разрешены в любое время.
        • Ежедневно — обновления будут происходить во временной интервал, указанный в поле Время (UTC) и продолжительность.
        • В выбранные дни — обновления будут происходить во временной интервал, указанный в поле Расписание по дням.
    15. В блоке Дополнительно:
      • В поле Метки узла нажмите кнопку Добавить метку и укажите ее ключ и значение. Если необходимо, добавьте несколько меток.
    16. Нажмите кнопку Создать.

    Создайте группу узлов Managed Service for Kubernetes:

    yc managed-kubernetes node-group create \
     --name k8s-labels-node \
     --cluster-name k8s-labels \
     --disk-type network-ssd \
     --fixed-size 1 \
     --node-labels environment=production,apps/tier=backend
    

    Где:

    • --name — имя группы узлов Managed Service for Kubernetes.
    • --cluster-name — имя кластера Managed Service for Kubernetes, в котором будет создана группа узлов.
    • --disk-type — тип диска узла Managed Service for Kubernetes.
    • --fixed-size — количество узлов Managed Service for Kubernetes в группе.
    • --node-labels — метки узла Managed Service for Kubernetes. Можно указать несколько меток через запятую.

    Результат:

    done (2m19s)
    id: catkuapro07e********
    cluster_id: abcsk1s2f3fm********
    created_at: "2020-09-24T13:32:24Z"
    name: k8s-labels-node
    status: RUNNING
    node_template:
      platform_id: standard-v2
      resources_spec:
        memory: "4294967296"
        cores: "2"
        core_fraction: "100"
      boot_disk_spec:
        disk_type_id: network-ssd
        disk_size: "103079215104"
      v4_address_spec: {}
      scheduling_policy: {}
    scale_policy:
      fixed_scale:
        size: "1"
    allocation_policy:
      locations:
      - zone_id: ru-central1-a
        subnet_id: e9bm87gkjd81********
    deploy_policy:
      max_expansion: "3"
    instance_group_id: cl1v2gh33j1c********
    node_version: "1.17"
    version_info:
      current_version: "1.17"
    maintenance_policy:
      auto_upgrade: true
      auto_repair: true
      maintenance_window:
        anytime: {}
    node_labels:
      apps/tier: backend
      environment: production
    

    Важно

    Группа узлов Managed Service for Kubernetes будет создана заново.

    1. Откройте актуальный конфигурационный файл с описанием группы узлов Managed Service for Kubernetes.

      О том, как создать такой файл, см. в разделе Создание группы узлов.

    2. Добавьте к описанию группы узлов Managed Service for Kubernetes параметр node_labels:

      resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" {
        cluster_id = yandex_kubernetes_cluster.<имя_кластера>.id
        ...
        node_labels = {
          "<метка_1>" = "<значение_1>"
          "<метка_2>" = "<значение_2>"
          ...
        }
      }
      
    3. Проверьте корректность конфигурационных файлов.

      1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

      2. Выполните команду:

        terraform validate
        

        Если в файлах конфигурации есть ошибки, Terraform на них укажет.

    4. Подтвердите изменение ресурсов.

      1. Выполните команду для просмотра планируемых изменений:

        terraform plan
        

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

      2. Если вас устраивают планируемые изменения, внесите их:

        1. Выполните команду:

          terraform apply
          
        2. Подтвердите изменение ресурсов.

        3. Дождитесь завершения операции.

      Подробнее см. в документации провайдера Terraform.

    Чтобы создать группу узлов Managed Service for Kubernetes, воспользуйтесь методом create для ресурса NodeGroup.

  3. Посмотрите информацию о созданной группе узлов с Kubernetes-метками:

    Консоль управления
    CLI
    API
    1. В консоли управления выберите каталог, в котором создан кластер Managed Service for Kubernetes.
    2. В списке сервисов выберите Managed Service for Kubernetes.
    3. Выберите кластер Managed Service for Kubernetes, в котором создана группа узлов.
    4. На странице кластера Managed Service for Kubernetes перейдите на вкладку Управление узлами.
    5. На странице одного из узлов Managed Service for Kubernetes перейдите на вкладку Метки. На вкладке перечислены системные и пользовательские Kubernetes-метки узла.
    1. Установите kubectl и настройте его на работу с созданным кластером.

    2. Посмотрите все узлы кластера Managed Service for Kubernetes:

      kubectl get nodes
      

      Результат:

      NAME                        STATUS   ROLES    AGE  VERSION
      catkuapro07e********-hgjd   Ready    <none>   1h   v1.17.8
      catkuapro07e********-lskc   Ready    <none>   1h   v1.17.8
      
    3. Посмотрите информацию о выбранном узле кластера Managed Service for Kubernetes:

      kubectl describe node catkuapro07e********-hgjd
      

      Результат:

      Name:               catkuapro07e********-hgjd
      Roles:              <none>
      Labels:             apps/tier=backend
                          beta.kubernetes.io/arch=amd64
                          beta.kubernetes.io/instance-type=standard-v2
                          beta.kubernetes.io/os=linux
                          environment=production
                          failure-domain.beta.kubernetes.io/zone=ru-central1-a
                          kubernetes.io/arch=amd64
                          kubernetes.io/hostname=catkuapro07e********-hgjd
                          kubernetes.io/os=linux
                          node.kubernetes.io/kube-proxy-ds-ready=true
                          node.kubernetes.io/masq-agent-ds-ready=true
                          node.kubernetes.io/node-problem-detector-ds-ready=true
                          yandex.cloud/node-group-id=catkuapro07e********
                          yandex.cloud/pci-topology=k8s
                          yandex.cloud/preemptible=false
      

    Чтобы посмотреть информацию об узле Managed Service for Kubernetes, воспользуйтесь методом list для ресурса NodeGroup.

Назначить Kubernetes-метку на уже созданную группу узловНазначить Kubernetes-метку на уже созданную группу узлов

Назначение Kubernetes-меток не приводит к пересозданию группы узлов.

CLI
Terraform
API

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы назначить Kubernetes-метку на уже созданную группу узлов, выполните команду:

yc managed-kubernetes node-group add-node-labels \
   --id <идентификатор_группы_узлов> \
   --labels <ключ>=<значение>, ...

Команда содержит параметры:

  • --id — идентификатор группы узлов. Его можно получить вместе со списком групп узлов в кластере Managed Service for Kubernetes.
  • --labels — Kubernetes-метки в формате <ключ>=<значение>. Можно указать одну или несколько меток через запятую.

Чтобы назначить Kubernetes-метку на уже созданную группу узлов:

  1. Откройте актуальный конфигурационный файл Terraform с описанием группы узлов Managed Service for Kubernetes.

    О том, как создать такой файл, см. в разделе Создание группы узлов.

  2. В описании группы узлов добавьте блок node_labels:

    resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" {
      ...
      node_labels {
        "<имя_метки>" = "<значение_метки>"
        ...
      }
      ...
    }
    

    Можно назначить несколько меток. Для этого укажите каждую метку на отдельной строке.

  3. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

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

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    Подробнее см. в документации провайдера Terraform.

Чтобы назначить Kubernetes-метку на уже созданную группу узлов, воспользуйтесь методом update для ресурса NodeGroup и передайте в запросе:

  • Kubernetes-метки в параметре nodeLabels.
  • Обновляемый параметр nodeLabels в параметре updateMask.

Важно

Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

Снять Kubernetes-метку с группы узловСнять Kubernetes-метку с группы узлов

Удаление Kubernetes-меток не приводит к пересозданию группы узлов.

CLI
Terraform
API

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы снять Kubernetes-метку с группы узлов, выполните команду:

yc managed-kubernetes node-group remove-node-labels \
   --id <идентификатор_группы_узлов> \
   --labels <ключ_метки>, ...

Команда содержит параметры:

  • --id — идентификатор группы узлов. Его можно получить вместе со списком групп узлов в кластере Managed Service for Kubernetes.
  • --labels — ключи Kubernetes-меток, которые надо снять. Можно указать одну или несколько меток через запятую.

Чтобы снять Kubernetes-метку с группы узлов:

  1. Откройте актуальный конфигурационный файл Terraform с описанием группы узлов Managed Service for Kubernetes.

    О том, как создать такой файл, см. в разделе Создание группы узлов.

  2. Удалите из описания группы узлов ненужные Kubernetes-метки в блоке node_labels.

  3. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

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

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    Подробнее см. в документации провайдера Terraform.

Чтобы снять Kubernetes-метку с группы узлов, воспользуйтесь методом update для ресурса NodeGroup и передайте в запросе:

  • Новый набор Kubernetes-меток в параметре nodeLabels. Если вы хотите снять все метки, передайте в запросе "nodeLabels": {}.
  • Обновляемый параметр nodeLabels в параметре updateMask.

Важно

Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

Была ли статья полезна?

Предыдущая
Изменение группы узлов
Следующая
Удаление группы узлов
Проект Яндекса
© 2025 ООО «Яндекс.Облако»