代码之家  ›  专栏  ›  技术社区  ›  MasterScrat

kubernetes:仅在具有gpu的ec2节点上运行pods

  •  1
  • MasterScrat  · 技术社区  · 6 年前

    我正在使用 DaemonSet 和英伟达DCGM。显然,监视具有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 使用时的关系 节点选择器 是吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   MasterScrat    6 年前

    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