Kubernetes:仅在具有GPU的EC2节点上运行Pod

时间:2018-07-14 09:18:58

标签: amazon-ec2 kubernetes monitoring

我正在使用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关系吗?

1 个答案:

答案 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