#azure #kubernetes #azure-aks
Вопрос:
Я настроил кластер AKS с модулем, настроенным для запуска нескольких служб Tomcat. Мой веб-сервер Apache находится за пределами кластера AKS и размещен на виртуальной машине, но в той же подсети. Сервер Apache отправляет запрос на Tomcat с ajp://10.x.x.x:5009/dbp_webui, который находится внутри кластера AKS. Я ищу варианты того, как предоставить сервис Tomcat, чтобы мой Apache мог успешно подключиться.
Ответ №1:
Вы можете использовать ingress для предоставления своей услуги. Начиная с версии 0.18.0
, он поддерживает протокол AJP. https://github.com/kubernetes/ingress-nginx/blob/main/Changelog.md#0180. Вступление во вход: https://kubernetes.io/docs/concepts/services-networking/ingress/
Вероятно, вам потребуется установить дополнительную аннотацию для описания внутреннего протокола: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#backend-protocol
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-name
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "AJP"
spec:
...
Как упоминалось в комментариях @CSharpRocks, узлы AKS по умолчанию не имеют общедоступных IP-адресов. Это означает, что лучшим вариантом является использование LoadBalancer
типа службы.
https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
Он развернет LB, который будет направлять трафик в модуль независимо от того, на каком узле он будет находиться. AFAIK с AKS имеют возможность устанавливать вход из коробки, с помощью LB.
Редактировать
Поцарапай это
Более простой способ: используйте
NodePort
службу типа: https://kubernetes.io/docs/concepts/services-networking/service/#nodeport
Комментарии:
1. Узлы AKS по умолчанию не имеют общедоступных IP-адресов. Это требует дополнительной настройки.