У меня есть кластер Kubernetes, работающий в EKS (на AWS).
В кластере у меня есть Elasticsearch, Kibana и другие веб-сервисы.
Я хотел бы настроить один балансировщик нагрузки ALB таким образом, чтобы:
- Просьбы к
/_кибана/*
направляется в сервис: search-kb-http, порт: 5601
- Весь остальной трафик
/*
направляется в сервис: веб-сервис-локатор, порт: 5000
Итак, я создаю это:
#Примечание: search-kb-http предоставляется оператором Kibana
---
апиВерсия: v1
вид: сервис
метаданные:
имя: веб-сервис-локатор
пространство имен: по умолчанию
спецификация:
порты:
- имя: http
порт: 5000
протокол: TCP
селектор:
компания-приложение: веб
тип: NodePort
---
Версия API: networking.k8s.io/v1beta1
вид: Вход
метаданные:
аннотации:
alb.ingress.kubernetes.io/имя-балансировщика нагрузки: [SNIP]
external-dns.alpha.kubernetes.io/имя хоста: [SNIP]
alb.ingress.kubernetes.io/ssl-redirect: '443'
alb.ingress.kubernetes.io/certificate-arn: [SNIP]
alb.ingress.kubernetes.io/scheme: выход в интернет
alb.ingress.kubernetes.io/целевой тип: ip
kubernetes.io/ingress.class: альб
имя: публичный вход
пространство имен: по умолчанию
спецификация:
правила:
- http:
пути:
- путь: /_кибана/*
серверная часть:
имя_службы: search-kb-http
порт службы: 5601
- дорожка: /*
серверная часть:
serviceName: веб-сервис-локатор
сервисПорт: 5000
вот в чем проблема
Я предпочитаю выполнять терминацию SSL на ALB для основного веб-сервиса. Но серверная часть Kibana предлагает только HTTPS. Поэтому мне нужны два разных бэкенда для использования разных протоколов при передаче.
В ходе моего исследования кажется, что есть аннотация, которую я могу применить к входу:
alb.ingress.kubernetes.io/backend-протокол: HTTPS
Но эти изменения, похоже, затрагивают весь вход.
Есть ли способ указать разные транзитные протоколы для разных бэкэндов?
Большое спасибо!
[РЕДАКТИРОВАТЬ] Я нашел обходной путь для отключения TLS на Kibana в ECK.Но остается вопрос, возможно ли это. Спасибо!