Предоставление служб OpenShift внешнему домену с помощью Ingress Controller
У меня есть кластер OpenShift, настроенный с контроллером Ingress по умолчанию для внутреннего домена, скажем, app.internal.com. Мне нужно предоставить определенные сервисы доступу в Интернет и получить к ним доступ через Ingress с существующим внешним доменом, например, app.external.com/api/....
Я попытался создать второй контроллер Ingress для этого внешнего домена, но столкнулся с проблемой. Кажется, что все мои маршруты и ресурсы Ingress автоматически назначаются внутреннему контроллеру Ingress по умолчанию.
Мне нужны инструкции о том, как успешно настроить внешний контроллер Ingress для обработки этих маршрутов и направления трафика в соответствующие службы. Я был бы очень признателен за информацию о потенциальных конфигурациях, лучших практиках и любых соображениях, касающихся безопасности и масштабируемости.
Спасибо заранее за вашу помощь!
1 ответ
Этот процесс использования нескольких разных маршрутизаторов (входящих контроллеров) называется совместным использованием входящего трафика или совместным использованием маршрутизатора. Существует несколько методов определения того, какие маршруты идут к какому IngressController, например сопоставление меток или сопоставление пространств имен.
Подробности смотрите в документации: https://docs.openshift.com/container-platform/4.12/networking/ingress-sharding.html .
Но вот один пример прямо из документации для сопоставления селектора меток:
apiVersion: v1
items:
- apiVersion: operator.openshift.io/v1
kind: IngressController
metadata:
name: dev-router
namespace: openshift-ingress-operator
spec:
namespaceSelector:
matchLabels:
name: dev