Особенности FQDN или VIP для KubeAPI и Ingress
VIP (Virtual IP) — виртуальный IP-адрес, который используется как единая точка входа для KubeAPI или Ingress. VIP не должен быть заранее настроен на каком-либо узле кластера: после развёртывания им управляет модуль Kube VIP, который поднимает адрес на подходящих узлах и освобождает его при удалении сервиса.
Для одного кластера требуется два VIP-адреса (при отсутствии внешних балансировщиков для KubeAPI и Ingress):
- VIP для KubeAPI — должен принадлежать той же подсети, что и Control Plane узлы;
- 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 и балансировщикам; список портов зависит от контура установки и сценария балансировки;
- См. инструкцию Как изменить доменное имя кластера.