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

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

  • Перед началом работы
  • Настройте узел
  • Подключитесь к узлу с помощью CLI
  • Подключитесь к узлу с помощью SSH
  1. Пошаговые инструкции
  2. Подключение к узлу через OS Login

Подключение к узлу через OS Login

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 21 апреля 2025 г.
  • Перед началом работы
  • Настройте узел
  • Подключитесь к узлу с помощью CLI
  • Подключитесь к узлу с помощью SSH

OS Login используется вместо SSH-ключей для доступа к виртуальным машинам Yandex Cloud через SSH. С помощью OS Login вы можете подключиться к узлам Managed Service for Kubernetes.

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

Внимание

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

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

Настройте узел кластера, после чего подключитесь к нему одним из двух способов:

  • с помощью CLI;
  • с помощью SSH.

Перед началом работыПеред началом работы

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

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

  2. Включите доступ через OS Login на уровне организации.

  3. Включите доступ к узлам из интернета для группы узлов, содержащей узел, к которому нужно подключиться.

  4. Убедитесь, что аккаунту, с которого вы подключаетесь к узлу, назначена одна из ролей:

    • compute.osLogin — для доступа к узлу без прав sudo;
    • compute.osAdminLogin — для доступа с правами sudo.

Настройте узелНастройте узел

Подготовьте узел кластера к подключению:

  1. Убедитесь, что для узла включен внешний доступ.

  2. Активируйте доступ к узлу через OS Login, изменив способ подключения к узлам.

    Примечание

    После изменения способа подключения группа узлов временно перейдет в статус Reconciling: все узлы в группе будут пересозданы для применения изменений.

    Консоль управления
    CLI
    Terraform
    API
    1. Откройте раздел Managed Service for Kubernetes в каталоге, где находится кластер Managed Service for Kubernetes, к узлу которого нужен доступ.

    2. Нажмите на имя нужного кластера Managed Service for Kubernetes.

    3. Перейдите во вкладку Группы узлов.

    4. Выберите нужную группу узлов.

    5. Нажмите кнопку Редактировать в правом верхнем углу.

    6. Выберите опцию Доступ по OS Login.

      Важно

      Если доступ через OS Login включен, то доступ по SSH-ключам будет невозможен.

    7. Нажмите кнопку Сохранить.

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

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

    Чтобы включить OS Login для всех узлов в группе узлов:

    1. Посмотрите описание команды CLI для добавления и обновления метаданных группы узлов Managed Service for Kubernetes:

      yc managed-kubernetes node-group add-metadata --help
      
    2. Выполните команду:

      yc managed-kubernetes node-group add-metadata \
        --name <имя_группы_узлов> \
        --metadata enable-oslogin=true
      

      Имя группы узлов можно запросить со списком групп узлов в каталоге.

      Важно

      Если доступ через OS Login включен, то доступ по SSH-ключам будет невозможен.

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

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

    2. Добавьте в описание группы узлов параметр instance_template.metadata, или измените его, если он уже есть.

      Укажите в этом параметре ключ метаданных enable-oslogin со значением true:

      resource "yandex_kubernetes_node_group" "<имя_группы_узлов>" {
        cluster_id = yandex_kubernetes_cluster.<имя_кластера>.id
        ...
        instance_template {
          metadata = {
            "enable-oslogin" = "true"
            ...
          }
          ...
        }
        ...
      }
      

      Важно

      Если доступ через OS Login включен, то доступ по SSH-ключам будет невозможен.

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

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

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

        terraform validate
        

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

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

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

        terraform plan
        

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

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

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

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

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

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

    1. Получите все существующие метаданные для группы узлов, воспользовавшись методом REST API get для ресурса NodeGroup, и передайте в запросе идентификатор группы узлов в параметре nodeGroupId.

      Имя группы узлов можно запросить со списком групп узлов в каталоге.

      Метаданные будут перечислены в виде пар ключ=значение в поле nodeTemplate.metadata ответа.

    2. Воспользуйтесь методом API update и передайте в запросе:

      • Идентификатор группы узлов в параметре nodeGroupId.

      • Параметр updateMask со значением nodeTemplate.metadata.

        Важно

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

      • Параметр nodeTemplate.metadata, в котором перечислены без изменений все существующие метаданные группы узлов в виде пар ключ=значение.

        Для ключа enable-oslogin замените текущее значение на true. Если такого ключа нет, добавьте его.

        Важно

        Если доступ через OS Login включен, то доступ по SSH-ключам будет невозможен.

        Пример перечисления метаданных в параметре
        • Существующие ключи метаданных в группе узлов:

          "nodeTemplate": {
              "metadata": {
                  "enable-oslogin": "undefined",
                  "<существующий_ключ_1>": "<существующее_значение_1>",
                  "<существующий_ключ_2>": "<существующее_значение_2>"
              },
              ...
          }
          
        • Ключи метаданных для передачи в запросе к API:

          "nodeTemplate": {
              "metadata": {
                  "enable-oslogin": "true",
                  "<существующий_ключ_1>": "<существующее_значение_1>",
                  "<существующий_ключ_2>": "<существующее_значение_2>"
              }
          }
          

        Внимание

        Метаданные, не перечисленные в параметре nodeTemplate.metadata, будут удалены.

        После этого группа узлов временно перейдет в статус Reconciling: все узлы в группе узлов будут пересозданы для применения изменений.

Подключитесь к узлу с помощью CLIПодключитесь к узлу с помощью CLI

  1. Посмотрите описание команды CLI для подключения к узлу:

    yc compute ssh --help
    
  2. Чтобы узнать имя нужного узла, получите список узлов в кластере:

    yc managed-kubernetes node-group list-nodes --name <имя_группы_узлов>
    

    Пример результата:

    +----------------------+-----------------+---------------------------+-------------+--------+
    | CLOUD INSTANCE       | KUBERNETES NODE | RESOURCES                 | DISK        | STATUS |
    +----------------------+-----------------+---------------------------+-------------+--------+
    | fhmmh23ugigb******** | <имя_узла>      | 4 100% core(s), 8.0 GB of | 64.0 GB ssd | READY  |
    | RUNNING_ACTUAL       |                 | memory                    |             |        |
    +----------------------+-----------------+---------------------------+-------------+--------+
    
  3. Подключитесь к узлу:

    yc compute ssh --name <имя_узла>
    

Подключитесь к узлу с помощью SSHПодключитесь к узлу с помощью SSH

  1. Экспортируйте сертификат OS Login.

    Примечание

    Сертификат действителен один час. По истечении этого времени для подключения к узлу экспортируйте новый сертификат.

  2. Узнайте публичный адрес узла:

    1. Получите идентификатор группы узлов:

      yc managed-kubernetes node-group list
      

      Результат:

      +------------------------------+----------------------+-----------+----------------------+---------------------+---------+------+
      |          ID                  |      CLUSTER ID      |   NAME    |  INSTANCE GROUP ID   |     CREATED AT      | STATUS  | SIZE |
      +------------------------------+----------------------+-----------+----------------------+---------------------+---------+------+
      | <идентификатор_группы_узлов> | cato4gqs0ave******** | ng-name   | cl17a1c3mbau******** | 2024-02-08 04:25:06 | RUNNING |    1 |
      +------------------------------+----------------------+-----------+----------------------+---------------------+---------+------+
      

      Нужный параметр находится в столбце ID.

    2. Посмотрите список узлов Managed Service for Kubernetes, которые принадлежат этой группе:

      yc compute instance-group list-instances <идентификатор_группы_узлов>
      

      Результат:

      +----------------------+---------------------------+----------------+-------------+----------------------+----------------+
      |     INSTANCE ID      |           NAME            |  EXTERNAL IP   | INTERNAL IP |        STATUS        | STATUS MESSAGE |
      +----------------------+---------------------------+----------------+-------------+----------------------+----------------+
      | fhm8nq5p7t0r******** | cl12kvrgj493rhrkimmb-**** | 84.201.156.211 | 10.128.0.36 | RUNNING_ACTUAL [25m] |                |
      +----------------------+---------------------------+----------------+-------------+----------------------+----------------+
      

      Публичный IP-адрес узла Managed Service for Kubernetes указан в столбце EXTERNAL IP.

  3. Подключитесь к ВМ:

    ssh -i <путь_к_файлу_сертификата> <логин_пользователя>@<публичный_IP-адрес_узла>
    

    Где:

    • <путь_к_файлу_сертификата> — путь к сохраненному ранее файлу Identity сертификата. Например: /home/user1/.ssh/yc-cloud-id-b1gia87mbaom********-orgusername.
    • <логин_пользователя> — логин пользователя, заданный для этого пользователя в профиле OS Login. Логин также указывается в конце имени экспортированного сертификата OS Login. В примере выше это orgusername.
    • <публичный_IP-адрес_узла> — полученный ранее публичный адрес узла.

    При первом подключении к узлу появится предупреждение о неизвестном хосте:

    The authenticity of host '158.160.**.** (158.160.**.**)' can't be established.
    ECDSA key fingerprint is SHA256:PoaSwqxRc8g6iOXtiH7ayGHpSN0MXwUfWHk********.
    Are you sure you want to continue connecting (yes/no)?
    

    Введите в терминале слово yes и нажмите Enter.

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

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