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

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

  • Перед началом работы
  • Создание группы узлов
  • Изменение группы узлов
  • Установка системных компонентов
  • Автоматическая установка
  • Полуавтоматическая установка
  • Проверка состояния внешних узлов
  • Отключение внешних узлов
  • Диагностика проблем
  1. Пошаговые инструкции
  2. Подключение внешних узлов к кластеру

Подключение внешних узлов к кластеру

Статья создана
Yandex Cloud
Улучшена
Обновлена 24 апреля 2025 г.
  • Перед началом работы
  • Создание группы узлов
    • Изменение группы узлов
  • Установка системных компонентов
    • Автоматическая установка
    • Полуавтоматическая установка
  • Проверка состояния внешних узлов
  • Отключение внешних узлов
  • Диагностика проблем

Примечание

Подключение внешних узлов к кластеру Managed Service for Kubernetes находится на стадии Preview. Их использование не тарифицируется.

Внешние серверы подключаются в виде узлов к кластеру Managed Service for Kubernetes с помощью специальных ресурсов Kubernetes API. Определения (CustomResourceDefinitions) этих ресурсов автоматически предустановлены в кластер Managed Service for Kubernetes.

Важно

Чтобы подключить внешние узлы к кластеру Managed Service for Kubernetes, необходимо соответствие кластера и подключаемых серверов определенным требованиям.

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

  1. Создайте кластер Managed Service for Kubernetes любой подходящей конфигурации.

    Для создания внешней группы узлов кластер Managed Service for Kubernetes должен работать в туннельном режиме. Он включается только при создании кластера.

  2. Установите kubectl и настройте его на работу с созданным кластером.

Создание группы узловСоздание группы узлов

Консоль управления
CLI
  1. На странице кластера Managed Service for Kubernetes перейдите на вкладку Управление узлами.
  2. Нажмите кнопку Создать группу узлов, затем Внешняя.
  3. Введите имя группы узлов Managed Service for Kubernetes.
  4. Укажите IP-адрес подключаемого сервера, доступный из облачной сети кластера Managed Service for Kubernetes.
  5. При необходимости нажмите кнопку Добавить IP-адрес, чтобы добавить еще IP-адреса.
  6. Нажмите кнопку Добавить.
  1. Сохраните в YAML-файл ext-nodegroup.yaml спецификацию объекта типа NodeGroup группы Managed Service for Kubernetes API mks.yandex.cloud/v1alpha1 в пространстве имен yandex-system:

    apiVersion: mks.yandex.cloud/v1alpha1
    kind: NodeGroup
    metadata:
      name: external-node-group
      namespace: yandex-system
    spec:
      ips: # Перечислите IP-адреса подключаемых серверов, доступные из облачной сети кластера Managed Service for Kubernetes.
      - 10.130.0.4
      - 10.130.1.5  
    
  2. Создайте группу узлов Managed Service for Kubernetes:

    kubectl apply -f ext-nodegroup.yaml
    

Изменение группы узловИзменение группы узлов

При необходимости группу узлов можно изменить — например, чтобы добавить дополнительные IP-адреса.

Консоль управления
CLI
  1. На странице кластера Managed Service for Kubernetes перейдите на вкладку Управление узлами.
  2. Выберите нужную группу узлов Managed Service for Kubernetes.
  3. Нажмите кнопку Редактировать.
  4. Внесите изменения и нажмите кнопку Сохранить.

Чтобы отредактировать спецификацию группы узлов Managed Service for Kubernetes, выполните команду:

kubectl -n yandex-system edit nodegroup external-node-group

Установка системных компонентовУстановка системных компонентов

Чтобы подключить серверы к кластеру Managed Service for Kubernetes, необходимо установить на них системные компоненты.

Установить системные компоненты можно одним из двух способов:

  • Автоматическая установка.
  • Полуавтоматическая установка.

Автоматическая установкаАвтоматическая установка

  1. Создайте в кластере Managed Service for Kubernetes секрет, содержащий приватный SSH-ключ для подключения к серверам:

    kubectl -n yandex-system create secret generic <имя_секрета> --from-file=ssh-privatekey=<путь_к_файлу_SSH-ключа> --type=kubernetes.io/ssh-auth
    
  2. В спецификации группы узлов укажите имя соответствующего секрета:

    Консоль управления
    CLI
    1. Перейдите к подробностям соответствующей группы узлов Managed Service for Kubernetes.
    2. Нажмите Редактировать.
    3. Выберите в выпадающем списке нужный секрет.
    4. Нажмите Сохранить.
    1. Выполните команду:

      kubectl -n yandex-system edit nodegroup external-node-group
      
    2. Отредактируйте спецификацию:

      apiVersion: mks.yandex.cloud/v1alpha1
      kind: NodeGroup
      metadata:
        name: external-node-group
        namespace: yandex-system
      spec:
        ips:
        ...
        provisionBySsh:
          sshKeySecret:
            name: <имя_секрета>
            namespace: yandex-system
      
  3. На всех внешних узлах Managed Service for Kubernetes должна быть доступна возможность подключения с логином root и указанным SSH-ключом. Если в качестве внешнего узла используется виртуальная машина Compute Cloud, включите для нее возможность подключения по SSH от root:

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

    2. Откройте файл конфигурации SSH:

      sudo vi /etc/ssh/sshd_config
      
    3. Измените значение PermitRootLogin на Yes и сохраните изменения.

    4. Откройте файл c SSH-ключом, который используется для подключения от root:

      sudo vi /root/.ssh/authorized_keys
      
    5. Удалите из файла все, кроме ключа, и сохраните изменения. В результате файл должен выглядеть так:

      ssh-ed25519 AAAAC3NzaC1lZDI1NTE5ABFLIFyapYheN7OZNhTaNqEHefjmU5mtzK******
      
    6. Перезапустите службу SSH, чтобы изменения вступили в силу:

      sudo systemctl restart sshd
      

Полуавтоматическая установкаПолуавтоматическая установка

Для полуавтоматической установки необходимо установить на все внешние узлы Managed Service for Kubernetes базовый компонент и конфигурацию, обеспечивающие дальнейшую установку системных компонентов.

  1. После создания группы узлов в кластере Managed Service for Kubernetes становится доступен секрет, содержащий kubeconfig для использования на подключаемых серверах. Получите его с помощью kubectl, настроенного на работу с кластером Managed Service for Kubernetes, и сохраните его в файл:

    kubectl -n yandex-system get secret <имя_группы_узлов>-maintainer-kube-config -o json | jq -r '.data."kube-config"' | base64 -d
    
  2. Сохраните полученный kubeconfig на подключаемом сервере:

    sudo mkdir -p /etc/yandex-maintainer
    sudo vi /etc/yandex-maintainer/kube.config # Сохраните в этот файл содержимое `kubeconfig`, полученное на предыдущем шаге.
    
  3. Выполните следующие команды на подключаемом сервере:

    sudo mkdir -p /home/kubernetes/bin
    sudo curl --output /home/kubernetes/bin/maintainer https://storage.yandexcloud.net/mk8s-maintainer/v1/maintainer
    sudo chmod +x /home/kubernetes/bin/maintainer
    sudo /home/kubernetes/bin/maintainer install
    

Проверка состояния внешних узловПроверка состояния внешних узлов

После установки системных компонентов серверы начнут подключение к кластеру Managed Service for Kubernetes.

Подключение узлов к кластеру Managed Service for Kubernetes завершено, когда в кластере становятся доступны новые узлы в состоянии Ready.

Чтобы проверить состояние узлов:

Консоль управления
CLI
  1. Перейдите к подробностям соответствующей группы узлов Managed Service for Kubernetes.
  2. Выберите вкладку Управление узлами.

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

kubectl get node -o wide -w

Результат:

NAME       STATUS  ROLES   AGE    VERSION  INTERNAL-IP  EXTERNAL-IP  OS-IMAGE            KERNEL-VERSION    CONTAINER-RUNTIME
...
ext-node2  Ready   <none>  4m03s  v1.20.6  10.130.0.4   <none>       Ubuntu 20.04.3 LTS  5.4.0-42-generic  docker://20.10.8
ext-node1  Ready   <none>  4m25s  v1.20.6  10.130.1.5   <none>       Ubuntu 20.04.3 LTS  5.4.0-42-generic  docker://20.10.8

Отключение внешних узловОтключение внешних узлов

Консоль управления
CLI
  1. Перейдите к подробностям соответствующей группы узлов Managed Service for Kubernetes.
  2. Нажмите Редактировать.
  3. Удалите IP-адреса нужных узлов Managed Service for Kubernetes.
  4. Нажмите Сохранить.
  1. Выполните команду:

    kubectl -n yandex-system edit nodegroup
    
  2. Удалите IP-адреса нужных узлов из поля spec.ips.

Диагностика проблемДиагностика проблем

При возникновении проблем в первую очередь обратитесь к событиям в пространстве имен yandex-system:

Консоль управления
CLI
  1. На странице кластера Managed Service for Kubernetes перейдите на вкладку События.
  2. Выберите пространство имен yandex-system.

Чтобы получить список событий, выполните команду:

kubectl -n yandex-system get events

Если информации недостаточно, обратитесь к логам системных компонентов на соответствующем подключаемом сервере:

journalctl -u yandex-maintainer
journalctl -u kubelet

Учитывайте требования для подключения внешних узлов Managed Service for Kubernetes.

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

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