我使用带有Kubernetes的Google容器引擎 . 我创建了一个https负载均衡器,它终止ssl并将流量转发到k8s集群节点 . 问题是我看不到白名单/过滤传入IP地址的选项 . 有没有?
听起来你已经在Kubernetes之外设置了一个负载均衡器 . 您可能要考虑使用Kubernetes Service 设置为 type: LoadBalancer . 这种类型的服务将为您提供一个外部IP,可以对所有 Pods 进行负载均衡,并且可以使用 loadBalancerSourceRanges 设置轻松限制为白名单IP . 以下是来自https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/的文档的示例
Service
type: LoadBalancer
Pods
loadBalancerSourceRanges
apiVersion: v1 kind: Service metadata: name: myapp spec: ports: - port: 8765 targetPort: 9376 selector: app: example type: LoadBalancer loadBalancerIP: 79.78.77.76 loadBalancerSourceRanges: - 130.211.204.1/32 - 130.211.204.2/32
如果你正在使用gce控制器还不可能[1],只需nginx控制器[2]接受白名单ip .
[1] https://github.com/kubernetes/ingress/issues/566
[2] https://github.com/kubernetes/ingress/blob/188c64aaac17ef29400e0f143b9aed7770e32fee/controllers/nginx/configuration.md#whitelist-source-range
2 回答
听起来你已经在Kubernetes之外设置了一个负载均衡器 . 您可能要考虑使用Kubernetes
Service
设置为type: LoadBalancer
. 这种类型的服务将为您提供一个外部IP,可以对所有Pods
进行负载均衡,并且可以使用loadBalancerSourceRanges
设置轻松限制为白名单IP . 以下是来自https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/的文档的示例如果你正在使用gce控制器还不可能[1],只需nginx控制器[2]接受白名单ip .
[1] https://github.com/kubernetes/ingress/issues/566
[2] https://github.com/kubernetes/ingress/blob/188c64aaac17ef29400e0f143b9aed7770e32fee/controllers/nginx/configuration.md#whitelist-source-range