Nginx Ingress Controller可以通过在Ingress路由上配置annotation的形式,为该Ingress中配置的所有规则设置白名单。目前暂不支持配置黑名单。在Ingress路由上配置annotation nginx.ingress.kubernetes.io/whitelist-source-range即可。
示例:nginx.ingress.kubernetes.io/whitelist-source-range: '10.0.0.0/24,172.10.0.1'若出现配置了白名单不生效的情况:如果使用的Nginx Ingress Controller的LoadBalancer Service(默认为kube-system/nginx-ingress-lb)的externalTrafficPolicy手动改为了Cluster,将会导致Nginx Ingress Controller失去客户端真实IP。这种情况下,需要将其改回Local模式。
如果同时在Nginx Ingress Controller前使用了WAF或是CDN等产品,同时也需要开启realip,来使Nginx Ingress Controller能够正确识别到客户端的真实IP,具体操作可参见
Ingress Pod中无法保留源IP。