Gateway API#
Ingress versus ingress
The word "Ingress," capitalized, refers to the Kubernetes Ingress resource, whereas "ingress" in lowercase refers to ingress functionality.
Starting with version 4.1.3, MKE 4 uses the Kubernetes Gateway API for management ingress. Envoy Gateway, a controller for Gateway API, provides this function. In line with this, management ingress will no longer use Kubernetes Ingress coupled with the NGINX Ingress Controller; however upgraded clusters will continue to have access to the NGINX Ingress Controller, and Ingress objects that are a part of user workloads will persist.
Note
MKE 4 always uses the Gateway API and Envoy Gateway controller to satisfy its ingress needs, regardless of any configuration choices. You can, however, continue to use Kubernetes Ingress with a supported controller, which can be NGINX Ingress Controller, either installed by you or sourced from MKE 4.
Start up crash loop
Envoy Gateway control plane and data plane pods can enter a crash loop if node-level inotify limits are exhausted. The filesystem subscription uses inotify to watch dynamic config and secret files; when inotify_init1() fails due to insufficient limits, Envoy aborts with:
assert failure: inotify_fd_ >= 0`
To resolve the issue, increase fs.inotify.max_user_instances and fs.inotify.max_user_watches on all MKE 4 cluster nodes.