At the moment, we are using Kubernetes ingress rules to direct backend paths base on the microservice that handle the request:
An example of the ingress is
{
"apiVersion": "extensions/v1beta1",
"kind": "Ingress",
"metadata":
{
"name": "hello-world",
"namespace": "$NAMESPACE",
"annotations":
{
"ingress.kubernetes.io/secure-backends": "true",
"ingress.kubernetes.io/backend-protocol": "HTTPS",
"ingress.kubernetes.io/use-regex": "true"
}
},
"spec":
{
"tls": [
{
"hosts": [
"hello-world-$NAMESPACE-[place-holder].co.uk"
]
}
],
"rules": [
{
"host": ""hello-world-$NAMESPACE-[place-holder].co.uk",
"http":
{
"paths": [
{
"path": "/test1/api",
"backend":
{
"serviceName": "api1-svc",
"servicePort": 443
}
},
{
"path": "/test1/api/history",
"backend":
{
"serviceName": "history-api-svc",
"servicePort": 443
}
}
]
Example 1
GET request
{
"path": "/test1/api/(.+)/birthday",
"backend":
{
"serviceName": "birthday-api-svc",
"servicePort": 443
}
},
}
POST request
{
"path": "/test1/api/(.+)/birthday",
"backend":
{
"serviceName": "person-info-api-svc",
"servicePort": 443
}
},
}
Kubernetes ingress on our given ingress controller currently has no way to redirect requests to different microservices that has the same resource path. (please see example 1)
I am looking for an Open source solution within Kong. How do I deploy kong gateway? via kong dbless mode or using Kubernetes Ingress Controller.
The reason I said kong dbless mode is because many team will be using this and we do not want to manager 100s of databases.