Особенности FQDN или VIP для KubeAPI и Ingress

VIP (Virtual IP) — виртуальный IP-адрес, который используется как единая точка входа для KubeAPI или Ingress. VIP не должен быть заранее настроен на каком-либо узле кластера: после развёртывания им управляет модуль Kube VIP, который поднимает адрес на подходящих узлах и освобождает его при удалении сервиса.

Для одного кластера требуется два VIP-адреса (при отсутствии внешних балансировщиков для KubeAPI и Ingress):

  1. VIP для KubeAPI — должен принадлежать той же подсети, что и Control Plane узлы;
  2. VIP для Ingress — должен использоваться на сетевом балансировщике нагрузки.

Обратите внимание! VIP не должен совпадать с IP-адресом любого узла кластера. В кластере с 1 Control Plane узлом IP-адреса назначаются по возрастанию: IP узла → VIP API → VIP Ingress.

Подробно о компонентах Kube VIP см. страницы shturval-vip и shturval-vip-provider. Пулы адресов для выбора VIP описаны на странице Пул IP-адресов.


KubeAPI

Адрес KubeAPI (VIP или FQDN) указывается при создании кластера. Он используется для администрирования кластера и взаимодействия компонентов Kubernetes и платформы.

DNS-записи для KubeAPI

Если вместо IP-адреса используется DNS-имя, создайте A-запись для API-сервера:

Кластер Пример записи
Кластер управления api.<cluster_name>.<base_domain>
Клиентский кластер api.<client_cluster_name>.<base_domain>

Порты и направления трафика см. в требованиях к открытому и закрытому контуру.


Ingress

VIP или FQDN для Ingress — точка входа для HTTP/HTTPS трафика к приложениям в кластере. Ingress-контроллер направляет трафик по host/path к нужным сервисам.

Формирование FQDN Ingress

FQDN в кластере формируются по одному из вариантов:

  • если при создании кластера указана DNS-запись Ingress: *.<DNS-запись-Ingress>;
  • если задан VIP-адрес для Ingress: *.<имя-кластера>.ip-<VIP-Ingress>.shturval.link.

Пример wildcard-записи:

Кластер Пример записи Комментарий
Кластер управления *.<cluster_name>.<base_domain> Wildcard-запись для доступа к прикладным функциям кластера управления
Клиентский кластер *.<client_cluster_name>.<base_domain> Wildcard-запись для доступа к приложениям клиентского кластера

Ограничение Common Name

Для запроса сертификатов, выпускаемых cert-manager, должно быть указано commonName, значение которого ограничено (не более 64 символов). При создании кластера проверяется длина имени (Common Name), который формируется согласно:

  • если указана DNS-запись Ingress: <prefix>.<DNS-запись-Ingress>;
  • если указан VIP-адрес для Ingress: <prefix>.<имя-кластера>.ip-<VIP-Ingress>.shturval.link;
  • если строка с VIP-адресом Ingress и именем кластера превышает общее ограничение, в итоговый Common Name имя кластера не добавляется, например, <prefix>.ip-<VIP-Ingress>.shturval.link.

В GUI в мастере установки кластера на шаге «Основные данные» DNS-запись Ingress ограничена 53 символами, что также учитывает формирование Common Name для сертификатов.


Варианты конфигурации по провайдерам

Провайдер KubeAPI Ingress
Shturval v2, oVirt, VMware vSphere Внутренний (VIP) или внешний балансировщик Внутренний (VIP) или внешний балансировщик
OpenStack, Basis Dynamix, Yandex Cloud, vCloud Director Только внешний балансировщик Только внешний балансировщик

Подробности по полям мастера установки кластера и особенностям провайдеров см. в инструкции Как развернуть кластер. Требования к внешнему балансировщику и сценарий CoreHA описаны в сетевых требованиях открытого и закрытого контура, а также на странице shturval-coreha.


Дополнительно

  • Для внутреннего балансировщика Ingress настройте соответствующий FQDN или используйте автоматически сформированное имя;
  • Firewall не должен блокировать соединения к VIP и балансировщикам; список портов зависит от контура установки и сценария балансировки;
  • См. инструкцию Как изменить доменное имя кластера.