我开始学习Kubernetes,还有一件事我目前不明白。 比方说,我有三个虚拟机(VMware)与一些独特的外部IP(比如X,Y,Z IP地址)。 假设我们要在端口80上公开3个不同的网站。比方说,我们希望在每个IP地址上都有每个网站。
如果不使用Kubernetes,我可以简单地在每台机器上创buildDocker容器并轻松地将其暴露。 (X:80,Y:80,Z:80)
我怎样才能用Kubernetes来解决这个问题? 如果没有Kubernetes,上面描述的解决scheme是什么? 有Ingress ,但它需要像X:80,X:80 / secondsite,X:80 / thirdsite。
如果我需要比虚拟机更多的IP地址,那么这个问题如何解决呢? 是否可以将IP地址范围分配给单个虚拟机,并将其与Ingress或以其他方式一起使用?
如果这些问题看起来微不足道,我很抱歉,但是我会很乐意为我提供一些方向的答案。
这个问题如何在AWS / Google这样的云中得到解决
您为部署创build部署和服务。 然后你创build一个入口控制(例如nginx)。 然后,您将为该控制器创build一个LoadBalancertypes的服务,以创build像ELB一样的负载均衡器。 Kubernetes将ELB侦听器端口映射回由入口控制器服务打开的节点端口。 然后你创build一个入口,说这个主机去这个服务。 入口控制器在configuration更改后重新加载。
当你自己推出时,你必须基本上用硬编码的nodeport来创build一个入口服务。 如果你没有在服务上设置一个nodeport,那么kubernetes将会随机select一个。 如果你想自动化,你可以预先select一个独特的节点端口。 然后kubernetes将在所有节点上打开相同的节点端口以获得stream量。
然后在你的负载平衡器上以某种方式给它一个新的VIP,并且在所有节点上发送80-> nodeport。