我最近开始探索 kuberenetes,并在谷歌云上完成了 Pod、服务和复制控制器的实际实现。我对服务和网络访问有些怀疑。首先,将作为一组 pod 的负载均衡器的服务部署在哪里?其次,使用服务负载均衡器访问在 pod 中运行的应用程序的请求是通过 master 节点还是直接到 minions 节点?
问问题
433 次
1 回答
1
服务代理在集群上的每个节点上运行。在集群内部,当您向服务 IP 发出请求时,它会被服务代理拦截并路由到与服务的标签选择器匹配的 pod。如果您为服务指定了外部负载均衡器,负载均衡器将选择一个节点来发送请求,此时它将被代理捕获并定向到适当的 pod。如果您使用的是公共 IP,那么您的路由器会将请求发送到具有公共 IP 的节点,在该节点上,代理将捕获该请求并将其定向到适当的 pod。
如果你跟着描述,你可以看到服务请求没有经过主服务器。它们通过在节点上运行的代理反弹。
顺便说一句,主服务器上还运行了一个代理,您可以使用它来访问节点、服务、Pod,但此代理不在您在集群中创建的服务的数据包路径中。
于 2015-04-09T15:32:27.047 回答