kubernetes - 我们如何正确分配 Pod 以便 KFServing 可以将 GPU 实例缩小到零?

标签 kubernetes gpu amazon-eks kubeflow argo-workflows

我正在使用 Argo 和 KFServing 和 Amazon EKS (Kubernetes) 设置 InferenceService。重要的是要知道我们的团队每个环境都有一个 EKS 集群,这意味着我们的集群中可能有多个我们无法控制的应用程序。
这是我们到目前为止的设置

  • 我们将一个 docker 镜像推送到 Amazon ECR,其中包含我们用于训练和部署模型的逻辑
  • 我们使用 argo提交在 #1 中开始培训的工作流程。将 argo 安装到我们的 kubernetes 集群时,我们注意到它的组件有时会分配给 GPU 节点。
  • 我们正在使用 KFServing以及。 KFServing 允许我们自动上下调整 GPU,特别是在不使用时将其缩放为零。在将 KFServing 中的组件应用于我们的集群时,它们也会被分配给 GPU 节点。

  • 我们对#2 和#3(上图)的当前设置似乎禁止了 KFServing 缩小到零的能力。我们担心在 GPU 中使用这些组件将不允许 GPU 缩小。
    哪些 Pod 需要分配给我们的 GPU 节点?
    (选项 1)我们是否只需要分配我们的 argo 工作流 Pod 而排斥其余的?
    - 或者 -
    (选项 2)GPU 节点中是否需要其他 kfserving 组件才能正常工作?
  • 选项 1:除了 argo 工作流 Pod,我们如何阻止所有 Pod 进入我们的 GPU 节点? 提醒一下,我们还有其他应用程序无法控制,因此为每个 Pod 添加节点关联似乎不现实。
  • 选项 2:当这些 GPU 节点中有 kfserving 组件时,这些 GPU 节点如何缩放到零? 我的印象是缩小意味着节点中没有 Pod。
  • 最佳答案

    tl;博士
    您可以使用 taints .

    Which pods need to be assigned to our GPU nodes?


    需要 GPU 的作业的 pod。
    如果您的 培训作业需要 GPU,您需要使用 nodeSelector 分配它和 tolerations在你的训练/部署部署的规范中,看到一个很好的例子 here .
    如果您的模型是 CV/NLP(许多矩阵乘法),您可能需要 推理服务在 GPU 中也是如此,在这种情况下,您需要按照 here 所述在其规范中请求它.

    Do we only need our argo workflow pod to be assigned and repel the rest?


    是的,如果您的推理服务不需要 GPU。

    Are there other kfserving components needed within the GPU node to work right?


    不,唯一的 kfserving 组件是 kfserving-controller并且不需要 GPU,因为它只是为您的推理服务编排 istio&knative 资源的创建。
    如果在您的 gpu 节点组中运行推理服务而未在规范中请求 GPU,则意味着该节点组未配置为具有污点效果 NoSchedule .确保 eksctl 配置中的 GPU 节点组具有 doc 中所述的污点。 .

    关于kubernetes - 我们如何正确分配 Pod 以便 KFServing 可以将 GPU 实例缩小到零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66388294/

    相关文章:

    kubernetes - k3s 在哪里存储 pod?

    amazon-web-services - 为什么 Kubernetes apiserver 向 etcd 服务器提供了错误的证书?

    c++ - OpenCV GPU HOG 检测

    opengl - 如何使用 WebGL/OpenGL 在 GPU 上高效计算生命游戏?

    kubernetes - 获取节点上的 Pod,按磁盘空间使用情况排序

    kubernetes - 使用 kubectl 在一行中获取 Kubernetes 中所有容器均为 "ready"的 pod

    python - 无法打开文件应用。 Kubernetes和Docker

    matlab - 为什么复杂的 Matlab gpuArray 占用的内存是它应该占用的内存的两倍?

    kubernetes - 指标服务器在部署期间没有已知的 pod 错误指标

    kubernetes - AWS EKS 集群的 "cluster creator"用户如何映射到 "system:masters"RBAC 组?