配置支持 GPU 的节点

ArcGIS 11.5 | |  Help archive

Kubernetes 包括使用设备插件管理集群中不同节点的图形处理单元 (GPU) 的支持。

ArcGIS Enterprise on Kubernetes 中,可以部署设备插件来启用集群中的 GPU 节点以优化 GIS 工作流,例如与栅格分析和深度学习相关的工作流。 默认情况下,栅格分析等功能配置为在 CPU 模式下运行,但当这些资源可用时,也可以灵活地在 GPU 模式下运行。

建议考虑集群中 GPU 的可用性和利用率,因为它会产生额外的成本。

要启用 GPU,需要 Kubernetes 的 NVIDIA 设备插件。 Kubernetes 的 NVIDIA 设备插件是一个守护进程集,允许您公开集群中每个节点上的 GPU 数量、运行支持 GPU 的容器以及跟踪 GPU 的运行状况。

注:

在此版本中,ArcGIS Enterprise on Kubernetes 仅支持 NVIDIA GPU。

启用 GPU

要为您的组织启用 GPU,请完成以下特定于您的环境和首选项的步骤:

  1. 完成以下步骤,以配置栅格分析笔记本服务或其他要使用支持 GPU 的节点的功能。
  2. 验证您的实例是否安装了设备插件。

    许多云环境都预先配置了 GPU 节点。 如果未安装设备插件,请参阅 Kubernetes 文档的 NVIDIA 设备插件了解详细信息和安装步骤。 如果您已在本地部署,则管理员必须在群集中的每个节点上启用 GPU。

  3. 要将支持 GPU 的节点用于组织的 GIS 工作流,请配置 GPU 资源的访问权限
  4. 或者,要在 GPU 节点上专门运行 GPU 工作负载,请配置节点亲和性和容忍度

配置 GPU 资源的访问权限

如果要为笔记本服务启用 GPU,请参阅查看和编辑运行时以了解有关设置每个节点的 GPU 单元的信息。

如果要为栅格分析启用 GPU,请完成以下步骤,以使用 ArcGIS Enterprise Administrator API 目录为以下每个部署设置 GPU 请求和限制:

  • system-rasteranalysistools-gpsyncserver(用于训练模型)
  • system-rasterprocessinggpu-dpserver(用于处理的操作系统)

  1. 以管理员身份登录到 ArcGIS Enterprise Administrator API 目录。
  2. 单击系统 > 部署
  3. 找到 system-rasteranalysistools-gpsyncserver 部署并单击其对应的 ID。
  4. 单击编辑部署
  5. 在部署 JSON 中,找到该部署和 customResources 参数的 resources 部分。
              
    "containers": [
          {
            "name": "main-container",
            "resources": {
              "memoryMin": "4Gi",
              "memoryMax": "8Gi",
              "cpuMin": "0.125",
              "customResources": {
                "limits":{"nvidia.com/gpu": "1"},
                "requests":{"nvidia.com/gpu": "1"}
              },
              "cpuMax": "2"
            },
    
  6. 更新列出的每个容器的 customResources 参数以包含 GPU 的请求和限制。
  7. 单击提交以保存对部署的编辑。
  8. 重复 system-rasterprocessinggpu-dpserver 部署的步骤。

在管理员目录 API 文档中了解如何编辑系统部署

配置节点亲和性和容忍度

GPU 节点可以同时运行 CPU 和 GPU 工作负载。 如果您的 CPU 工作负载允许在 GPU 节点上运行,则无需采取进一步措施。 但是,要确保 GPU 工作负载仅在 GPU 节点上运行,则您的管理员必须采取额外步骤来配置节点亲和性和容忍度。 请完成以下步骤以对节点进行污点标记,并为适用的服务应用容忍度,以便它们可以在带有污点的节点上进行调度:

  1. 为了确保 GPU 工作负载专门安排在 GPU 节点上,请对 GPU 节点进行污点标记。

    kubectl taint nodes <your-node-name> nvidia.com/gpu=Exists:NoExecute
    

  2. 标记 GPU 节点。 或者,使用节点上已指定的现有标签。

    要使用适用于栅格分析的键 raster 和值 GPU 标记节点,请使用以下命令:

    kubectl label nodes <your-node-name> raster=GPU
    

    要使用适用于笔记本服务的键 notebook 和值 NotebooksGPUNode 标记节点,请使用以下命令:

    kubectl label nodes <your-node-name> notebook=NotebooksGPUNode
    

  3. 以管理员身份登录到 ArcGIS Enterprise Manager
  4. 打开 pod 部署位置设置。

    如果要为笔记本服务启用 GPU,请参阅查看和编辑运行时以了解有关访问 pod 部署位置设置的信息。

    要访问适用于栅格分析的 pod 部署位置设置,请完成以下步骤:

    1. 在侧边栏中,单击服务按钮。
    2. 单击系统服务,然后选择 RasterProcessingGPU 服务。
    3. 单击 Pod 部署位置选项卡。
  5. 要应用节点亲和性规则,该规则可确保在 GPU 节点上调度服务的 Pod,请在节点亲和性部分中提供以下信息,然后单击添加
    • 类型 - 必选
    • - 指定用于标注 GPU 节点的键,例如 raster
    • 运算符 - In
    • - 指定用于标注 GPU 节点的值,例如 GPU
  6. 要应用容忍度以允许 pod 在将要设置污点的节点上运行,请在容忍度部分中提供以下信息,然后单击添加
    • 效果 - 不执行
    • - nvidia.com/gpu
    • 运算符 - Exists

  7. 单击保存
  8. 验证 GPU pod 是否在 GPU 节点上运行。

您可以开始将 GPU 资源用于您的工作负载。 此外,请参阅调整栅格分析的建议。