我有两个用例,团队只希望Pod A在Pod B运行的节点上结束。他们通常有很多的Pod B副本运行在一个节点上,但是他们只希望在同一个节点上运行一个Pod A副本。
目前,他们正在使用守护集来管理Pod A,这是无效的,因为Pod A在许多节点上结束,而Pod B没有运行。我不想限制节点的标签,因为这将限制Pod B的节点容量(也就是说,如果我们有100个节点,20被标记,那么Pod B的可能容量仅为20)。
简单地说,我如何确保在任何节点上运行一个Pod A副本,同时至少运行一个Pod B副本?
发布于 2020-03-26 17:52:21
当前的调度程序实际上没有类似的内容。你需要自己写点东西。
发布于 2020-03-27 11:31:49
正如coderanger调度程序已经解释过的那样,它不支持此功能。理想的解决方案是创建自己的调度程序来支持这样的功能。
但是,您可以使用podAffinity来在同一个节点上部分调度豆荚。
spec:
affinity:
podAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- <your_value>
topologyKey: "kubernetes.io/hostname"它将尽量把吊舱安排得尽可能紧。
https://stackoverflow.com/questions/60871980
复制相似问题