从k8s文档以及我能找到的其他答案中,它显示了入口之前的负载均衡器(LB(。然而,我感到困惑的是,在匹配入口规则之后,仍然可能有多个容器支持所选服务。在选择一个要路由到的容器时,LB是否再次发生?
https://kubernetes.io/docs/concepts/services-networking/ingress/#what-是入口
从您发布的图片中可以看到,Ingress选择了一个服务(基于规则(,而不是直接选择Pod。然后,服务可能会(也可能不会(有多个Pod。
Kubernetes的默认服务类型称为ClusterIP
。它接收一个虚拟IP,然后将请求重定向到后面服务的一个Pod。在集群的每个节点上,运行一个kube-proxy
,负责实现这个虚拟ip机制。
因此,是的,在选择服务后,负载平衡会再次发生。。如果该服务选择了一个以上的Pod。选择哪个后端(Pod(取决于kube-proxy
的配置方式,并且通常是循环的或只是随机的。
还有一种方法可以在没有虚拟IP的情况下创建服务。这种服务称为headless services,直接使用DNS将请求重定向到不同的后端。。但它们不是默认的,因为使用代理比尝试使用DNS进行负载平衡要好。。这可能有副作用(取决于谁提出请求(
您可以在文档中找到许多关于服务如何工作的信息。