我正在使用 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:我们如何阻止所有 pod 进入我们的 GPU 节点,而不是 argo 工作流 pod?提醒一下,我们还有其他无法控制的应用程序,因此为每个 pod 添加节点关联似乎不切实际。
选项 2:当这些 GPU 节点中有 kfserving 组件时,这些 GPU 节点如何缩放到零?我的印象是缩小意味着节点中没有 pod。