Предоставление Не HTTP трафика в кластере AKS

#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-адресов. Это требует дополнительной настройки.