Подключение сервера Yandex BareMetal как внешнего узла к кластеру Yandex Managed Service for Kubernetes
Важно
Сервис Yandex BareMetal доступен только в регионе Россия.
Примечание
Подключение внешних узлов к кластеру Managed Service for Kubernetes находится на стадии Preview и не тарифицируется.
Серверы BareMetal можно подключить к кластеру Managed Service for Kubernetes как внешние узлы с помощью специальных ресурсов Kubernetes API. Определения этих ресурсов (CustomResourceDefinitions
Необходимые платные ресурсы
В стоимость поддержки описываемого решения входят:
-
Плата за мастер Managed Service for Kubernetes (см. тарифы Yandex Managed Service for Kubernetes).
-
Плата за стандартные узлы кластера Managed Service for Kubernetes (при наличии): использование вычислительных ресурсов и хранилища (см. тарифы Yandex Compute Cloud).
-
Плата за ВМ: использование вычислительных ресурсов и хранилища (см. тарифы Yandex Compute Cloud).
Примечание
Использование операционной системы тарифицируется в зависимости от ее типа (см. тарифы Compute Cloud).
-
Плата за использование публичного IP-адреса для ВМ (см. тарифы Yandex Virtual Private Cloud).
-
Плата за аренду сервера BareMetal (см. тарифы Yandex BareMetal).
Чтобы подключить сервер BareMetal как внешний узел к кластеру Managed Service for Kubernetes:
- Подготовьтесь к работе
- Создайте внешнюю группу узлов
- Установите на сервер BareMetal системные компоненты
- Проверьте состояние внешнего узла
См. также Как отказаться от аренды и удалить ресурсы.
Перед началом работы
-
Создайте сервисный аккаунт с ролями k8s.clusters.agent, vpc.publicAdmin и k8s.tunnelClusters.agent на каталог, в котором создается кластер Managed Service for Kubernetes.
-
Создайте кластер Managed Service for Kubernetes любой подходящей конфигурации, работающий в туннельном режиме. При создании кластера укажите созданный ранее сервисный аккаунт.
Важно
Туннельный режим можно включить только при создании кластера.
-
Установите kubectl
и настройте его на работу с созданным кластером. -
Арендуйте сервер BareMetal с образом ОС
Ubuntu 24.04и доступом в интернет.Вы также можете использовать BareMetal-серверы с другими операционными системами.
Создание внешней группы узлов
- На странице кластера Managed Service for Kubernetes перейдите на вкладку Управление узлами.
- Нажмите кнопку Создать группу узлов, затем Внешняя.
- Введите имя группы узлов Managed Service for Kubernetes.
- В поле IP-адреса узлов укажите приватный IP-адрес подключаемого сервера BareMetal.
- Нажмите кнопку Добавить.
Установка системных компонентов на сервер BareMetal
Чтобы подключить серверы к кластеру Managed Service for Kubernetes, необходимо установить на них системные компоненты.
Установить системные компоненты можно следующими способами:
Автоматическая установка
При автоматической установке кластер Managed Service for Kubernetes самостоятельно подключается к серверу BareMetal по SSH и устанавливает на него все необходимые системные компоненты.
Чтобы выполнить автоматическую установку:
-
Создайте в кластере Managed Service for Kubernetes секрет, содержащий приватный SSH-ключ для подключения к серверу BareMetal:
kubectl -n yandex-system create secret generic <имя_секрета> \ --from-file=ssh-privatekey=<путь_к_файлу_SSH-ключа> \ --type=kubernetes.io/ssh-authВажно
Если вы утратили закрытую часть SSH-ключа, указанного при аренде сервера, вы можете добавить в профиль root-пользователя сервера новый публичный SSH-ключ.
-
В спецификации группы узлов укажите имя секрета:
Консоль управления- На странице кластера Managed Service for Kubernetes перейдите на вкладку Управление узлами.
- Выберите созданную группу узлов Managed Service for Kubernetes в списке.
- В правом верхнем углу нажмите кнопку Редактировать.
- В поле Секрет с приватным SSH-ключом выберите в выпадающем списке имя созданного секрета.
- Нажмите Сохранить.
Полуавтоматическая установка
При полуавтоматической установке вы вручную подготавливаете сервер BareMetal, устанавливая на него компонент maintainer и задавая настройки доступа к кластеру Managed Service for Kubernetes. После этого компонент maintainer автоматически загрузит и установит остальные системные компоненты.
Чтобы выполнить полуавтоматическую установку:
-
С помощью
kubectlполучите секрет, содержащийkubeconfigдля использования на подключаемом сервере BareMetal, и сохраните его в файл:kubectl -n yandex-system get secret <имя_группы_узлов>-maintainer-kube-config \ -o json | jq -r '.data."kube-config"' | base64 -d > kube.configСекрет становится доступен после создания группы узлов в кластере Managed Service for Kubernetes.
-
Перенесите файл
kube.configна сервер BareMetal:scp kube.config root@<публичный_ip_сервера_baremetal>:/ -
Подключитесь к серверу BareMetal:
ssh root@<публичный_IP-адрес_сервера> -
Создайте каталог
/etc/yandex-maintainerи переместите в него файлkube.config:sudo mkdir -p /etc/yandex-maintainer sudo mv /kube.config /etc/yandex-maintainer/ -
Выполните следующие команды на сервере BareMetal:
sudo mkdir -p /home/kubernetes/bin sudo curl --output /home/kubernetes/bin/maintainer https://storage.yandexcloud.kz/mk8s-maintainer/v1/maintainer sudo chmod +x /home/kubernetes/bin/maintainer sudo /home/kubernetes/bin/maintainer install
Проверка состояния внешнего узла
После установки системных компонентов сервер BareMetal начнет подключение к кластеру Managed Service for Kubernetes.
Чтобы убедиться, что сервер BareMetal успешно подключен:
- На странице кластера Managed Service for Kubernetes перейдите на вкладку Управление узлами.
- Нажмите на имя созданной группы узлов Managed Service for Kubernetes.
- Перейдите на вкладку Узлы.
- Проверьте, что созданный узел Managed Service for Kubernetes имеет статус
Ready. - Откройте созданный узел и перейдите на вкладку События.
- Проверьте, что все этапы подключения сервера завершились успешно.
Как отказаться от аренды и удалить ресурсы
Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:
- Удалите кластер Managed Service for Kubernetes.
- Удалите созданные сервисные аккаунты.
- Удалите ВМ.
- Откажитесь от продления аренды сервера BareMetal. После отказа от аренды сервер проработает до конца оплаченного периода, а затем будет удален.
- Удалите приватное соединение.