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.