We need a bit of help trying to install Kong in Kubernetes inside Jelastic environment. Me and My colleague have a production based kubernetes cluster with the following:
- Load Balancer
- Workers
- Storage
- Control Plane
By default, this environment has ingress-nginx which loads the Hello Kuberenetes application just fine. Here is the config for the ingress-nginx hello kubernetes example:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: helloworld
namespace: default
spec:
ingressClassName: nginx
rules:
- http:
paths:
- backend:
service:
name: hello-kubernetes
port:
number: 80
path: /
pathType: Prefix
status:
loadBalancer: {}
However, when we install Kong and switch the ingress class to Kong, it returns 404. Some context on how we install Kong:
- Setting the config for the
metallb-system and assign the public ip address:
apiVersion: v1
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- XXX.XXX.XXX.35-XXX.XXX.XXX.35
kind: ConfigMap
metadata:
name: config
namespace: metallb-system
- Restarting the controller and the pods in the
metallb-system name-space
- Installing Kong using the
https://raw.githubusercontent.com/Kong/kubernetes-ingress-controller/main/deploy/single/all-in-one-postgres.yaml
- It gets assigned the Public IP for the
kong-proxy service.
- Editing the
helloWorld ingress like so and changing the ingressClassName to kong:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: helloworld
namespace: default
spec:
ingressClassName: kong
rules:
- http:
paths:
- backend:
service:
name: hello-kubernetes
port:
number: 80
path: /
pathType: Prefix
status:
loadBalancer: {}
When the above configs are applied, we get a 404 Not found by Nginx when visiting the Public IP.
Note: When we use the curl http://PUBLIC_IP inside the Jelastic environment, it loads the hello kubernetes application just fine when the IngressClassName is set to kong. However, it does not work publicly.
We would really appreciate some help on this one. Please and thank you.