kubernetes在单个公共ip中公开服务
我已经在virtualBox中使用三个VM安装了kubernetes群集,我的主机IP是192.168.50.166,群集中的节点信息是kubernetes在单个公共ip中公开服务,kubernetes,Kubernetes,我已经在virtualBox中使用三个VM安装了kubernetes群集,我的主机IP是192.168.50.166,群集中的节点信息是 vm1 192.168.50.28 worker-node-1 vm2 192.168.50.29 worker-node-2 vm3 192.168.50.30 master-node 如果我的主机上有一个公共IP(140.112.1.1),我如何公开我的服务 http://140.112.1.1:xxxx/services 我想也许我应该在
vm1 192.168.50.28 worker-node-1
vm2 192.168.50.29 worker-node-2
vm3 192.168.50.30 master-node
如果我的主机上有一个公共IP(140.112.1.1),我如何公开我的服务
http://140.112.1.1:xxxx/services
我想也许我应该在我的主机上购买另一个网络接口,并将公共IP分配给该接口,但我不知道如何与我的群集通信。您正在搜索的是LoadBalancer服务和入口资源 Kubernetes可以提供负载平衡服务(),这基本上是一种将流量从外部负载平衡器传输到后端POD的方式 如果您将Kubernetes群集托管在云服务(Azure、Google等)之上,那么很有可能您已经拥有为群集提供负载平衡器功能的功能 如果情况并非如此,并且您希望在Kubernetes群集上承载负载平衡器服务,以便所有节点都参与公共IP(或多个公共IP)的服务,那么一种常见的方法是在Kubernetes()上部署MetalLB 其次,通过使用入口资源(),可以根据请求路径(通常是HTTP或HTTPS)管理对不同POD(和服务)的外部访问 它基本上是根据请求的路径将传入流量路由到集群中的不同服务(和不同的pod)的一种方法,并且可以提供SSL和许多其他功能 为集群上的入口资源提供服务的常用方法是使用NGINX入口() 通过LoadBalancer+Ingress的组合,您可以在连接到外部IP地址的LoadBalancer后面公开所有服务,所有内容都可以在HTTP或HTTPS中使用证书等等 假设您正在几乎裸机上托管Kubernetes群集(普通虚拟机就像裸机一样),您可以:
- 让您拥有的公共地址可供虚拟机在其网络接口上使用
- 在集群上安装MetalLB,这将提供内部负载平衡,您可以指定它可以使用哪个IP范围(或单个IP)
- 在集群上安装NGINX入口,这将为入口资源提供支持。安装时,nginx控制器应通过MetalLB接收负载平衡中的外部IP
- 最后,创建一个入口,以在您想要的路径下为您想要的所有服务提供服务。如果一切正常,nginx控制器应该开始在外部IP地址上为您的服务