Установка node-sitter
node-sitter — это инструмент для обеспечения отказоустойчивости приложений в группе узлов с прерываемыми ВМ.
Возможности node-sitter:
- Расселение подов при выключении узлов кластера на прерываемых ВМ.
- Установка дополнительных доверенных корневых сертификатов.
- Настройка скачивания образов контейнеров через прокси.
- Установка дополнительных параметров запуска для
kubelet.
Перед началом работы
-
Создайте группу узлов со следующими параметрами:
- Вычислительные ресурсы — выберите Своя конфигурация.
- В поле Дополнительно активируйте опцию Прерываемая.
- В блоке Дополнительно добавьте произвольную taint-политику для приложения (например
node-sitter: 1).
-
Убедитесь, что группы безопасности для кластера Managed Service for Kubernetes и его групп узлов настроены корректно. Если отсутствует какое-либо из правил — добавьте его.
Важно
От настройки групп безопасности зависит работоспособность и доступность кластера, а также запущенных в нем сервисов и приложений.
Установка с помощью Yandex Cloud Marketplace
-
Перейдите на страницу каталога
и выберите сервис Managed Service for Kubernetes. -
Нажмите на имя нужного кластера Kubernetes и выберите вкладку
Marketplace. -
В разделе Доступные для установки приложения выберите node-sitter и нажмите кнопку Перейти к установке.
-
Задайте настройки приложения:
- Пространство имен — создайте новое пространство имен (например,
node-sitter). Если вы оставите пространство имен по умолчанию, node-sitter может работать некорректно. - Название приложения — укажите название приложения.
- Установить node-drainer — оставьте опцию включенной, чтобы скрипт
node-drainerв составе приложения предотвращал появление подов в состоянииErrorилиCompletedна узлах группы с прерываемыми ВМ. - Название ключа tolerations — укажите название ключа taint-политики, заданной ранее. Поды
node-sitterвыполнят настройку новых узлов группы с прерываемыми ВМ до того, как на эти узлы распределится пользовательская нагрузка. После успешной настройки узлов приложениеnode-sitterснимает с них taint-политику, и на узлах могут запускаться пользовательские приложения. Если не указывать этот параметр, настройка узлов будет производиться параллельно с запуском пользовательских приложений. - (опционально) Доверенные сертификаты — скопируйте содержимое файла сертификатов x.509 в формате PEM для установки в хранилище доверенных сертификатов на узлах группы с прерываемыми ВМ. При пересоздании узлов сертификаты будут устанавливаться заново.
- (опционально) Параметры для kubelet — укажите дополнительные параметры запуска
kubeletна узлах группы с прерываемыми ВМ. - (опционально) Настройки прокси — укажите настройки прокси для скачивания образов контейнеров на узлах группы с прерываемыми ВМ. Настройки передаются через переменные окружения
HTTP_PROXYиHTTPS_PROXY.
- Пространство имен — создайте новое пространство имен (например,
-
Нажмите кнопку Установить.
-
Дождитесь перехода приложения в статус
Deployed.
Установка с помощью Helm-чарта
-
Установите менеджер пакетов Helm
версии не ниже 3.8.0. -
Установите kubectl
и настройте его на работу с созданным кластером. -
Для установки Helm-чарта
с node-sitter выполните команду, указав в ней параметры ресурсов, созданных ранее:helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/node-sitter/node-sitter/chart/node-sitter \ --version 0.1.6 \ --untar && \ helm install \ --namespace <пространство_имен_для_node_sitter> \ --create-namespace \ --set node_drainer_enabled='true' \ --set toleration_name='<имя_taint_политики>' \ --set custom_certs='<доверенные_сертификаты_PEM>' \ --set custom_kubelet_flags='<дополнительные_параметры_запуска_kubelet>' \ --set containerd_proxy='<настройки_прокси_для_скачивания_образов>' \ node-sitter ./node-sitterПараметры установки:
-
--namespace— пространство имен, где будет развернуто приложение.Если вы укажете в параметре
namespaceпространство имен по умолчанию, node-sitter может работать некорректно. Рекомендуем указывать значение, отличное от всех существующих пространств имен (например,node-sitter-space). -
node_drainer_enabled— при значенииtrueскриптnode-drainerв составе приложения предотвращает появление подов в состоянииErrorилиCompletedна узлах группы с прерываемыми ВМ. -
toleration_name— название ключа taint-политики, заданной ранее. Подыnode-sitterвыполнят настройку новых узлов группы с прерываемыми ВМ до того, как на эти узлы распределится пользовательская нагрузка. После успешной настройки узлов приложениеnode-sitterснимает с них taint-политику, и на узлах могут запускаться пользовательские приложения. Если не указывать этот параметр, настройка узлов будет производиться параллельно запуску пользовательских приложений. -
custom_certs— содержимое файла сертификатов X.509 в формате PEM для установки в хранилище доверенных сертификатов на узлах группы с прерываемыми ВМ. При пересоздании узлов сертификаты будут устанавливаться заново. -
custom_kubelet_flags— дополнительные параметры запускаkubeletна узлах группы с прерываемыми ВМ. -
containerd_proxy— настройки прокси для скачивания образов контейнеров на узлах группы с прерываемыми ВМ. Настройки передаются через переменные окруженияHTTP_PROXYиHTTPS_PROXY.
Примечание
Если вы используете версию Helm ниже 3.8.0, добавьте в начало команды строку
export HELM_EXPERIMENTAL_OCI=1 && \, чтобы включить поддержку Open Container Initiative (OCI) в клиенте Helm. -