Внешние узлы кластера
Примечание
Подключение внешних узлов находится на стадии Preview. Их использование не тарифицируется.
Managed Service for Kubernetes позволяет подключать в качестве узлов кластера Kubernetes серверы, расположенные вне Yandex Cloud.
Требования для подключения внешних узлов к кластеру
Чтобы подключить внешние узлы к кластеру Managed Service for Kubernetes, необходимо соответствие следующим требованиям:
-
Сетевая связность на уровне L3 между локальной сетевой инфраструктурой ваших серверов и облачной сетью кластера Managed Service for Kubernetes. Внешние узлы подключаются к мастеру кластера только через его внутренний IP-адрес в облачной сети Yandex Cloud.
Установить приватное выделенное соединение между вашей локальной сетевой инфраструктурой и Yandex Cloud можно следующими способами:
- С помощью сервиса Yandex Cloud Interconnect.
- Самостоятельно с помощью VPN — например, IPSec или WireGuard.
-
Кластер Managed Service for Kubernetes использует туннельный режим сети.
-
Подключаемые серверы должны иметь доступ в интернет.
-
Операционная система подключаемых серверов — Ubuntu 24.04.
Как подключить внешние узлы к кластеру Managed Service for Kubernetes, читайте в разделе Подключение внешних узлов к кластеру.
Разделение ответственности
Для предсказуемой работы внешних узлов необходимо обеспечить бесперебойную работу:
- вычислительной инфраструктуры — используемых серверов и установленной на них операционной системы;
- мы не рекомендуем использовать подключаемые сервера для чего-либо, кроме выполнения функций узлов кластера;
- локальной сетевой инфраструктуры используемых серверов;
- соединения между вашей локальной сетевой инфраструктурой и Yandex Cloud.
Yandex Cloud предоставляет услугу обеспечения надежного приватного соединения между вашей локальной сетевой и облачной инфраструктурой в рамках сервиса Cloud Interconnect. В качестве альтернативы вы можете самостоятельно настраивать и обеспечивать качество такого соединения с помощью VPN.
Yandex Cloud не предоставляет услугу по управлению и обеспечению надежности вычислительной и сетевой инфраструктуры вне датацентров Yandex Cloud. Вы можете воспользоваться преимуществами управляемой инфраструктуры в рамках использования обычных групп узлов сервиса Managed Service for Kubernetes.
Ограничения при работе с внешними узлами
При проектировании распределения рабочих нагрузок по узлам в кластере Managed Service for Kubernetes необходимо учитывать следующие особенности:
- К внешним узлам невозможно подключать объекты
PersistentVolumeна основе облачных дисков Yandex Cloud. - Сервисы на основе L3-балансировщиков Yandex Cloud (например,
LoadBalancer) не распределяют трафик на такие узлы.
Нагрузки, которым необходима эта функциональность, необходимо размещать только на узлах кластера Managed Service for Kubernetes, которые расположены в Yandex Cloud. Для этого вы можете воспользоваться настройками node affinity
...
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: yandex.cloud/node-group-id # Kubernetes-метка узлов, расположенных в Yandex Cloud.
operator: Exists
...
В качестве альтернативы управлению трафиком с помощью L3-балансировщиков вы можете воспользоваться управлением трафиком на уровне L7. Для этого установите в кластер Managed Service for Kubernetes Ingress-контроллер и используйте ресурсы типа Ingress.
Продукты Marketplace Ingress-контроллер и Gateway API на базе Yandex Application Load Balancer не поддерживают балансировку трафика на внешние узлы.
Для балансировки трафика на внешние узлы воспользуйтесь контроллером Gwin.
Чтобы использовать контроллер Gwin для балансировки трафика на внешние узлы:
-
Адрес внешнего узла должен быть доступен L7-балансировщику Application Load Balancer.
-
Адрес внешнего узла должен присутствовать в
statusузла как ресурса, например:kubectl get no -o yaml example-cluster-node-1 | yq ".status.addresses"- address: 10.0.0.7 type: InternalIP - address: 2001:db8::1 type: InternalIP - address: example-cluster-node-1 type: Hostname