我目前正在研究是否值得在 K8s 上设置 Jupyter。我发现了这个网站:https://z2jh.jupyter.org/en/latest/index.html。我的问题之一是将用户转发到适当的节点池。我将有 2 个。一个是 CPU 正在运行,另一个是 GPU 处于活动状态。我不希望所有用户都自动使用 GPU,而是为真正需要它的几个数据科学家保留 GPU。其他人都应该使用 CPU 节点池。
我试图弄清楚是否有一种方法可以根据用户的凭据将用户转发到适当的节点池,或任何其他方式。
旁注:如果您计划拥有多个用户并希望动态扩展资源而不是为每个用户手动或预配置环境,我绝对认为在 Kubernetes 上设置 Jupyterhub 是值得的。
为了回答您的问题,可以按照您的要求进行设置。
您需要:
设置至少两个不同的配置文件(一种仅用于 CPU,一种用于 GPU)。在 GPU 配置文件中,您可以使用 kubespawner_override
的
extra_resource_guarantee属性来设置 GPU 保证。或者,您可以使用 node_affinity_required 属性仅选择具有 GPU 的节点(假设节点已标记),或者您可以使用 node_selector 属性(例如,对于 GKE,您可以将其设置为选择具有特定类型 GPU 的节点,使用关键
cloud.google.com/gke-accelerator
)
启用用户相关的配置文件,以便只有选定的用户才能看到 GPU 配置文件选项。