我有nginx部署容器作为前端,并通过ClusterIP服务与uwsgi部署容器进行通信。
我希望nginx容器优先使用在其节点上运行的uwsgi容器。
是否可以在不命名节点的情况下以节点亲缘关系做到这一点?
答案 0 :(得分:0)
如果要在与uwsgi pod相同的节点上运行nginx pod,请使用pod关联。
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- uwsgi
有关pod亲和力和反亲和力的更多详细信息,请点击here
答案 1 :(得分:0)
可以通过node affinity来实现Pod的供应以及在同一节点上的订购/计划。但是,如果您想让Kubernetes做出决定,则必须使用inter-pod affinity。
也只是为了验证您是否以正确的方式进行了所有操作,请参考 pod-affinity example。
答案 2 :(得分:0)
据我了解,您有nginx吊舱和uwsgi吊舱, 和Nginx Pod将流量代理到uwsgi Pod。
并且您正在尝试使nxinx Pod将流量代理到同一节点上的uwsgi Pod。
以前发布的答案仅部分有效。让我解释一下原因。
使用PodAffinity确实可以将nginx和uwsgi pod一起安排,但不会影响loadBalancing。
Nginx <-> uwsgi负载平衡将保持不变(随机)。
最简单的方法是在同一容器中运行nginx容器和uwsgi容器,并使它们与本地主机通信。这样,您可以确保:
让我知道这种方法是否可以解决您的问题,或者出于某种原因,我们应该尝试其他方法。