我有一个在GKE上运行的k8s集群。该集群使用nginx-ingress将某些服务公开给Internet。我想为这些服务的子集配置IP白名单,因为我正在使用nginx.ingress.kubernetes.io/whitelist-source-range
,例如:
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/add-base-url: "true"
nginx.ingress.kubernetes.io/proxy-body-size: 30M
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/whitelist-source-range: 81.x.x.x
generation: 7
name: my-apps
namespace: client-apps
spec:
rules:
- host: somehost.com
http:
paths:
- backend:
serviceName: app1
servicePort: 8080
使用此配置,无法从具有该IP的客户端访问我的服务。在NGINX入口日志中,我看到:
10.0.0.36-[10.0.0.36]--[18 / Feb / 2019:10:34:34 +0000]“ GET / xxx HTTP / 2.0” 403 0“ https://xxx”“ Mozilla / 5.0 (Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 72.0.3626.109 Safari / 537.36“
因此,入口阻止了来自10.0.0.36的请求的访问。但是,实际的客户端IP是81.x.x.x。是否可以通过原始IP进行过滤?