如何在'emissary'和'monitoring'命名空间中配置Helm版本,以将Pod部署到具有两个污点的EKS托管节点组中k8s.xxxxx/emissarynodeGroup:emissary
和k8s.xxxxxx/monitoringnodeGroup:monitoring
在Helm值中不提供两个匹配表达式,并且在使用以下节点关联配置时,是否可以使用“OR”条件或其他方法将pod分配给专用节点组?
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: k8s.xxxxxx/monitoringnodeGroup
operator: In
values:
- monitoring
同样,我也对宽容采取了类似的方法。我如何才能做到这一点?“
1条答案
按热度按时间8e2ybdfx1#
我没有得到你的条件点,你是说
operator OR
吗?但是您在affinity中有不同的key,因此可能不可能,因为Values中可能有多个值。
因为当你说OR的时候,你也有另一个在Node上调度POD的偏好。
在这种情况下,您可以使用preferredDuringIgnoredDuringExecution,您可以同时使用两者。
requiredDuringIgnoredDuringExecution & preferredDuringIgnoredDuringExecution
此外,您还可以设置requiredone作为常用值,并通过设置weight来保持多个preferred。
更新:
另一种选择是将两个值都传递给节点affinity-like,然而,我认为你不是想传递两个值,而是某种表达式类型,它是在一个表达式中吗?
没有原生的K8s表达式类型选项可用,必须管理从Helm或Kustomize模板选项传递的值。