You need to enable JavaScript to run this app.
导航
大规模业务 ConfigMaps 导致 Ingress Nginx Controller 无法启动
最近更新时间:2023.11.21 19:52:00首次发布时间:2023.11.21 19:52:00

问题现象

集群中有大量的 ConfigMap,导致 Nginx Ingress 组件创建失败。

原因分析

Ingress Nginx Controller 默认监听集群中的所有 ConfigMap,组件启动时会加载所有 ConfigMap 资源到内存中。若在业务创建过多 ConfigMap,将导致组件启动时加载资源过多,内存占用太大而引发 OOM 错误。

解决方案

限制 Ingress Nginx Controller 监听的命名空间。修改启动参数--watch-namespace=xxx-system,其中设置的命名空间即为当前 controller 所在的命名空间。

注意

此解决方案会导致该 Ingress Nginx Controller 只会对该命名空间中的 Ingress 生效。因此,如果需要在多个命名空间中都使用Ingress,需要在每个命名空间都部署一套 Ingress Nginx Controller,且修改 Ingress Nginx Controller 的启动参数,设置其只监听 Controller 所在命名空间。