Kubernetes上的相同节点关联

Kubernetes上的相同节点关联,kubernetes,Kubernetes,我将nginx部署吊舱作为前端,通过集群服务与uwsgi部署吊舱作为后端进行通信 我希望nginx吊舱优先使用在其节点上运行的uwsgi吊舱 有没有可能在不命名节点的情况下使用节点关联来实现这一点?如果要在与uwsgi pod相同的节点上运行nginx pod,请使用pod关联 podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector:

我将nginx部署吊舱作为前端,通过集群服务与uwsgi部署吊舱作为后端进行通信

我希望nginx吊舱优先使用在其节点上运行的uwsgi吊舱


有没有可能在不命名节点的情况下使用节点关联来实现这一点?

如果要在与uwsgi pod相同的节点上运行nginx pod,请使用pod关联

        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: app
                operator: In
                values:
                - uwsgi

有关pod关联性和反关联性的更多详细信息,请单击

在同一节点上提供pod和订单/调度可通过以下方式实现。然而,如果你想让库伯内特斯为你决定,你必须使用


另外,为了验证您是否以正确的方式完成了所有工作,请参考我所了解的nginx pods和uwsgi pods中的pod affinity

, 和nginx pods将流量代理到uwsgi pods

您正在尝试将nxinx pods代理流量传输到同一节点上的uwsgi pods

先前发布的答案仅部分有效。让我解释一下原因

使用PodAffinity确实会将nginx和uwsgi pod安排在一起,但不会影响负载平衡
Nginx-uwsgi负载平衡将保持不变(将是随机的)

您可以做的最简单的事情是在同一个pod中运行nginx容器和uwsgi容器,并使它们与localhost通信。通过这种方式,您可以确保:

  • nginx和uwsgi总是在同一个节点上进行调度
  • 通过本地主机的连接强制通信留在pod内部

  • 如果这种方法解决了您的问题,请告诉我,或者出于某种原因,我们应该尝试不同的方法。

    有趣的方法,但这打破了“优先顺序”。如果uwsgi失败,那么nginx服务将完全失败。也许这不是问题,但我认为有一个更灵活的解决方案来满足亲和性需求。我有几个nginx吊舱和几个uwsgi吊舱。我不认为这种方法使每个nginx pod在其同一节点上使用uwsgi pod,而不是在另一个随机节点上。对于更新标题提议,我想要的不是更改调度,而是更改流量调度,因此nginx将流量调度到其同一节点uwsgi pod(如果活动)。