Kubernetes on-premise Ingress traffic policy local



Kubernetes 安装在前提下, nginx-ingress

在多个节点上具有多个 Pod 的服务 所有这些节点都作为nginx入口工作。

问题是当来自负载均衡器的请求可以跳转到另一个具有 pod 的工作线程时,这会导致工人网络内部的不公正交易,我想在请求来自外部时强制到入口, 入口总是选择同一节点上的 Pod,以防万一没有 pod 那么 可以转发到其他节点。

这张图片或多或少代表了我的情况。 例

我在蓝色的情况下有问题,我期望的是红色的情况。

我看到存在"外部流量策略:本地",但这仅适用于 serviceType nodePort/loadBalancer,nginx 入口尝试使用"clusterIP"进行连接,因此它跳过了此功能。 有一种方法可以让此功能适用于 clusterIP 或类似的东西?我开始阅读有关 istio 和 linkerd 的信息,它们看起来非常强大,但我没有看到任何参数来配置此工作流程。

您必须使用NodeSelector部署入口控制器才能将其部署到特定节点,名为ingress或任何您想要的节点: 因此,您可以使用端口 80 和 443 上的简单运行状况检查(只是为了在节点发生故障时更新区域(继续在这些节点 IP 上创建 LB,甚至更好, 使用自定义运行状况检查终端节点。

正如您所说,externalTrafficPolicy=Local仅适用于负载均衡器服务:处理本地集群很难:)

最新更新