我正在尝试将可以访问我的应用程序的IP列入白名单 . 我按照本教程创建了http-balancer . https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer
使用 NodePort
创建服务后,我创建了一个类似于下面的 ingress.yaml
文件 . 我创建了一个全局静态IP并设置了一个域名 .
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: <global-static-ip>
spec:
rules:
- host: <domain_name>
- http:
paths:
- path: /*
backend:
serviceName: nginx
servicePort: 80
上面的yaml文件工作正常,我可以访问“欢迎使用Nginx”页面 .
但是,当我添加要列入白名单的IP时,它似乎不起作用,仍然允许其他未列入白名单的IP .
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: <global-static-ip>
ingress.kubernetes.io/whitelist-source-range: "xx.xx.xx.xxx/32"
spec:
rules:
- host: <domain_name>
- http:
paths:
- path: /*
backend:
serviceName: nginx
servicePort: 80
参考:http://container-solutions.com/kubernetes-quick-tip/ https://docs.giantswarm.io/guides/advanced-ingress-configuration/
2 回答
我没有使用Ingress,但根据正常的nginx规则,你需要拒绝所有,然后允许白名单IPS
哪个内容不允许你的非白名单IP .
您提供的参考使用Nginx-based ingress controller .
GKE上的Ingress使用http(s) load balancer . 目前,GCP上的http(s)负载均衡器不支持允许或拒绝IP流量的防火墙规则 .
您可以:
自行阻止Web服务器或应用程序中的源IP .
要么
尝试安装nginx-based ingress controller .