我有一个运行在GKE上的Kubernetes 1.4.5集群,我想要测试它。它接受使用HTTPS入口如下我可以将源IP限制为由Ingress创建的GCP负载均衡器:
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可能提供的解决方案。
谢谢您花时间回答。我已经回到L4(我想!)使用服务 –
感谢您花时间回答。 我已经回到L4(我想!)使用服务类型LoadBalancer,但我仍然失去源IP。看看GCP负载平衡,它现在只有一个转发规则,转到一个目标池,该目标池被提供给虚拟机。 GCP有更好的方法吗? '类型:服务 apiVersion:V1 元数据: 名称:keycloak-HTTPS服务 规格: 类型:负载平衡器 externalIPs: - xxx.xxx.xxx.xxx 端口: - 端口:443 TARGETPORT :8443 name:https selector: app:keycloak-pod' –
在目标容器中看到的会话的源IP不会是客户端的原始源IP。这是Kubernetes v1.5的默认行为。但是,从v1.5开始,添加了一个可选的测试版功能,可以保留GCE/GKE环境的客户端源IP。 – George