我将如何设置 kubernetes ingress 以进行仅 VPN 访问?

How would I setup kuberentes ingress to for VPN-only access?

我有一个 Kubernetes 集群,其中为 public 个端点设置了 nginx 入口。这很好用,但我有一项服务不想公开给 public,但我确实想公开给通过 vpn 具有 vpc 访问权限的人。需要访问此路由的人不会设置 kubectl,因此他们无法使用 port-forward 将其发送到本地主机。

为仅限 VPN 用户使用的服务设置入口的最佳方法是什么?

编辑:感谢您的回复。正如一些人猜测的那样,我是 运行 AWS 中的 EKS 集群。

这在很大程度上取决于您的入口控制器和云主机,但粗略地说,您可能会使用内部负载平衡器服务而不是 public LB 来设置控制器的第二个副本,然后设置它服务 and/or 入口仅允许来自 VPN pods.

的 IP

既然你在谈论 "VPC" 并且假设你的集群在 AWS 中,你可能需要按照@coderanger 所说的去做。

在服务类型中使用 "LoadBalancer" 部署一个新的入口控制器并添加注释 service.beta.kubernetes.io/aws-load-balancer-internal: "true".

在此处查看您可以添加到 AWS 中的负载均衡器的可能注释有哪些:https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/#load-balancers

您还可以创建一个安全组,例如使用 service.beta.kubernetes.io/aws-load-balancer-security-groups 将其添加到负载均衡器。