Google cloud platform 我是否可以将源IP限制为由Ingress创建的GCP负载平衡器
我有一个在GKE上运行的Kubernetes 1.4.5集群,我想将其投入测试。它使用如下入口接受HTTPSGoogle cloud platform 我是否可以将源IP限制为由Ingress创建的GCP负载平衡器,google-cloud-platform,google-kubernetes-engine,Google Cloud Platform,Google Kubernetes Engine,我有一个在GKE上运行的Kubernetes 1.4.5集群,我想将其投入测试。它使用如下入口接受HTTPS kind: Ingress apiVersion: extensions/v1beta1 metadata: name: keycloak-ingress annotations: kubernetes.io/ingress.allow-http: "false" #kubernetes.io/ingress.class: "gce" spec: tls:
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: keycloak-ingress
annotations:
kubernetes.io/ingress.allow-http: "false"
#kubernetes.io/ingress.class: "gce"
spec:
tls:
- secretName: mysecret
backend:
serviceName: keycloak-https-service
servicePort: 443
在测试期间,我想限制可以访问群集的源IP。因为负载平衡器将所有传入流量的源IP转换为本地IP地址,所以Google云防火墙无法限制此流量。有没有办法限制进入负载平衡器的流量
我知道这是一个严格意义上的GCE问题,但Kubernetes可能会提供一个解决方案。您正在寻找一个管道: GCE L7磅->虚拟机:节点端口->吊舱 交通状况: GCE L7磅->您的虚拟机 应来自中提到的130.211.0.0/22。你应该已经有了防火墙规则。 交通状况: 虚拟机->容器 应该来自你的虚拟机IP。您不能控制谁与lb对话,您可以控制谁与节点对话
不幸的是,由于上述情况,这不适用于HTTP LB。它适用于L3/L4 LB,因为您在到达vm的数据包中获得了实际客户端的源ip:云装甲产品允许您使用ip白名单限制对负载平衡器的访问。该产品可能是在OP提出该问题后推出的。我使用云盔甲将负载平衡流量限制在Kubernetes入口
感谢您抽出时间回答。我已经退回到L4(我想!)使用服务谢谢你花时间回答。我已经退回到L4(我想!)使用服务类型的LoadBalancer,但我仍然失去了源IP。查看GCP负载平衡,它现在只有一个转发规则,它将转发到一个目标池,该池将馈送到虚拟机中。GCP上有更好的方法吗?`种类:服务APIVATION:v1元数据:名称:KeyClope https服务规范:类型:LoadBalancer externalIPs:-xxx.xxx.xxx端口:-端口:443 targetPort:8443名称:https选择器:app:KeyClope pod`目标容器中看到的会话的源IP将不是客户端的原始源IP。这是Kubernetes v1.5版的默认行为。但是,从v1.5开始,添加了一个可选的beta特性,该特性将为GCE/GKE环境保留客户端源IP。