Knative Serving service shows IngressNotConfigured and unable to access the application via Kong Ingress
Ask your question here:
I've set up Knative Serving in EKS cluster with Kong configured for Ingress gateway.
Below are the cluster details:
Kubernetes Version: 1.23
Knative Version: 1.7.1
Kong Version: 2.6.9
Issue:
Followed this to set up Knative in EKS cluster and this for application deployment.
I've patched config-domain and config-network config maps with domain name and kong ingress class name respectively.
I've also added CNAME record in my DNS.
After deploying the application yaml, kubectl get ksvc displays the URL in which application can be accessible. But READY shows Unknows and REASON as IngressNotConfigured
NAME URL LATESTCREATED LATESTREADY READY REASON
hello http://hello.default.test.com hello-00001 hello-00001 Unknown IngressNotConfigured
While accessing the application URL, am seeing the below:
{"message":"no Route matched with those values"}
NOTE: Revisions shows READY: True but Route shows READY: Unknown and REASON: IngressNotConfigured.
The knative custom resource ingresses.networking.internal.knative.dev doesn't have any events for me to debug.
Expected behaviour
READY should be True and the application URL should be accessible.
Can someone please help me debug and identify the cause of this issue?
Hi @MaharaJothi Thank you for reporting this. But could you please open the issue against kubernetes-ingress-controller instead of here?
There is one similar issue has been reported https://github.com/Kong/kubernetes-ingress-controller/issues/2543 though I am not sure if it is same with yours.
@nak3 Thanks for your response. Yes issue I reported is similar in a way to the one you shared. I'll report against kubernetes-ingress-controller
Can you help me with any documentation available that helps explain the resources created as part of Knative Service (ksvc) and how they are linked? Like Service, Route, ingress, ServerlessService, autoscaler, revision, caching It'll help me debug the issue better
I know only this one https://github.com/knative/serving/blob/main/docs/scaling/SYSTEM.md If you are looking for another docs I think it might be better to ask in Knative Slack channel or https://github.com/knative/docs
According to here , for using custom ingress class names, we need to use networking.knative.dev/ingress-class=<ingress-type> as annotation in Service yaml.
However, the ingresses.networking.internal.knative.dev definition has networking.knative.dev/ingress.class: admin-kong always.
Also in k8s service hello I see the below annotation:
networking.knative.dev/ingress-class: admin-kong
Why is this difference? Could this impact in anyway the ingress creation?