Home > Mobile >  Exposing Non HTTP Traffic on AKS Cluster
Exposing Non HTTP Traffic on AKS Cluster

Time:10-27

I have setup an AKS cluster, with a POD configured to run multiple Tomcat services. My Apache web server is outside the AKS cluster and hosted on a VM, but in the same subnet. Apache server sends a request to the Tomcat with ajp://10.x.x.x:5009/dbp_webui, which is inside the AKS cluster. I am looking for options on how to expose the Tomcat service, so that my Apache can make a successful connection.

CodePudding user response:

You can use ingress to expose you service. From version 0.18.0 it supports AJP protocol. https://github.com/kubernetes/ingress-nginx/blob/main/Changelog.md#0180. Intro into ingress: https://kubernetes.io/docs/concepts/services-networking/ingress/

You will probably need to set additional annotation to describe the backend protocol: 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:
   ...

As @CSharpRocks mentioned in the comments, AKS nodes don't have public IP addresses by default. This means that a better option is to use LoadBalancerservice type. https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer

It will deploy a LB that will route traffic to the Pod no matter on witch node it will resident. AFAIK with AKS have option to install Ingress out of the box, with a LB.

Edit

Scratch this

Easier way: use a NodePort type service: https://kubernetes.io/docs/concepts/services-networking/service/#nodeport

  • Related