我们在集群中有一个nginx ingress控制器,在ingress资源上有白名单注解。这一切都如预期的那样工作。流量进入控制器,如果它与入口的范围不匹配,则得到403ed。没问题
我们现在已经将其移动到负载均衡器(例如:在负载均衡器级别而不是在入口资源级别阻塞流量)。这将在服务中创建.spec.loadBalancerSourceRanges
:
apiVersion: v1
kind: Service
metadata:
labels:
...
name: nginx-ingress-controller
namespace: nginx-ingress
spec:
clusterIP: x.x.x.x
clusterIPs:
- x.x.x.x
externalTrafficPolicy: Local
healthCheckNodePort: 31564
loadBalancerSourceRanges:
- 10.0.0.0/8
- 192.168.0.0/16
- 172.17.0.0/16
- ...
- ...
ports:
....
selector:
...
sessionAffinity: None
type: LoadBalancer
status:
loadBalancer:
ingress:
- ip: x.x.x.x
这里的一切也都如预期的那样。任何不在白名单中的流量都不会成功连接到控制器pod,因为云提供商的负载均衡器没有通过它。
然而,我的问题是:有没有一种方法可以在控制台内的负载均衡器上看到这些范围(在我的情况下是GCP)?
换句话说,如果我选择了一个入口控制器正在使用的Google LB,我如何查看该负载均衡器上允许的CIDR范围(如果有的话)?
1条答案
按热度按时间xxls0lw81#
当GKE在服务清单中遇到
spec:loadBalancerSourceRanges
时,它会做两件事:1.在GKE节点上配置防火墙规则
1.为VPC配置防火墙规则。
VPC防火墙规则名称应以
k8s
开头。