有没有办法为 Kubernetes 集群分配静态 IP,使得任何用户都只能通过静态 IP 访问其应用程序。
例如,我在 192.168.0.131 (master)、192.168.0.132(worker1) 和 192.168.0.133(worker 2) 上设置了一个集群。一个 dotnet 应用程序在节点端口 32000 上运行,该端口可按预期在整个集群上访问。
现在我必须分配一个 IP 来与该集群通信,这样用户才能访问该 IP。此外,我们是否也可以将此 IP 用于其他应用程序,这些应用程序可以根据不同的端口(而不是节点端口)进行区分。
仅供参考,我在裸机上使用 kubernetes 集群。
答案1
要将单个 IP 重用于多个项目,只要我们谈论的是 HTTP,我建议您使用 Ingress 并部署 IngressController,如 nginx-ingess、traefik 或类似产品。这样,任何 http 流量都将通过由 IngressController 管理的 vhosts 通过单个 http IP / 端口提供服务。
问题仍然是通过单个 IP 公开基于 NodePort 的服务。对于本地,我可能会在已知 IP(可能是主节点)上运行类似 HA Proxy 的东西,并使用它将流量引导到入口控制器的 nodePort 服务,或者配置您网络中的某些负载均衡器/路由器来执行此操作。或者,您可以使用 nodePort 或 hostNetwork: true 直接在主节点上运行入口