Google compute engine 普通中等教育文凭

Google compute engine 普通中等教育文凭,google-compute-engine,kubernetes,Google Compute Engine,Kubernetes,我正试着在GCE上设置Kubernetes。我的问题是,假设Kubernetes集群中有20个仆从,以及使用LoadBalancer类型部署的两个服务,每个服务的副本为2个。所以K8S基本上会在每个服务中为两个不同的仆从放置两个吊舱。我的问题是,没有运行任何POD的其他仆从是否也会在链KUBE-PORTALS-CONTAINER和KUBE-PORTALS-HOST中为这两个服务添加iptables规则?至少这是我的观察结果,但我想确认这是Kubernetes在GCE上的工作方式,还是K8S的工作

我正试着在GCE上设置Kubernetes。我的问题是,假设Kubernetes集群中有20个仆从,以及使用LoadBalancer类型部署的两个服务,每个服务的副本为2个。所以K8S基本上会在每个服务中为两个不同的仆从放置两个吊舱。我的问题是,没有运行任何POD的其他仆从是否也会在链KUBE-PORTALS-CONTAINER和KUBE-PORTALS-HOST中为这两个服务添加iptables规则?至少这是我的观察结果,但我想确认这是Kubernetes在GCE上的工作方式,还是K8S的工作方式,而不管它部署在哪里。无论仆从是否是该服务的一部分,都应该可以从任何仆从处访问该服务的原因是什么?让我知道是否有更好的社区来解决这个问题

对于这两项服务,未运行任何POD的其他仆从是否也会在链KUBE-PORTALS-CONTAINER和KUBE-PORTALS-HOST中获得iptables规则

对。负载平衡器可以将外部流量转发到集群中的任何节点,因此每个节点都需要能够接收服务的流量并将其转发到适当的pod

我想确认这是Kubernetes在GCE上的工作方式,还是K8S的工作方式,无论它部署在哪里


无论Kubernetes部署在何处,集群内服务的iptables规则都是相同的。使服务外部可访问略有不同,这取决于您部署集群的位置(例如,在AWS上,您将创建类型为NodePort而不是类型LoadBalancer的服务),因此外部化服务的iptables规则可能会有所不同

谢谢你,罗伯特。我对此有点困惑。同意如果负载平衡器被编程为将流量转发到Kubernetes集群中的任何节点,那么K8S集群中的任何节点都应该能够转发集群中运行的任何服务的流量。但在一个稍微好一点的世界里,如果我的loadbalancer将流量转发给运行至少一个POD的节点,这看起来像是额外的跳跃。我知道构建这种负载平衡器将重复kube proxy已经做过的一些工作。是否有配置来控制iptables规则是否在pod运行的节点上运行?是的,此配置有时会导致额外的跃点。恐怕没有任何方法可以控制iptables规则来减少额外的跳数。