我正在使用DaemonSet
和NVIDIA DCGM在群集上设置GPU监视。显然,只有监视具有GPU的节点才有意义。
我正试图为此目的使用nodeSelector
,但是the documentation states that:
要使Pod能够在节点上运行,该节点必须具有每个指示的键值对作为标签(它也可以具有其他标签)。最常见的用法是一对键值对。
我打算检查标签beta.kubernetes.io/instance-type
是否为以下任何标签:
[p3.2xlarge, p3.8xlarge, p3.16xlarge, p2.xlarge, p2.8xlarge, p2.16xlarge, g3.4xlarge, g3.8xlarge, g3.16xlarge]
但是我看不到使用or
时如何建立nodeSelector
关系吗?
答案 0 :(得分:3)
Node Affinity是解决方案:
spec:
template:
metadata:
labels:
app: dcgm-exporter
annotations:
prometheus.io/scrape: 'true'
description: |
This `DaemonSet` provides GPU metrics in Prometheus format.
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: beta.kubernetes.io/instance-type
operator: In
values:
- p2.xlarge
- p2.8xlarge
- p2.16xlarge
- p3.2xlarge
- p3.8xlarge
- p3.16xlarge
- g3.4xlarge
- g3.8xlarge
- g3.16xlarge