在 jupyterhub kubespawner 节点中安装包

Installing packages in jupyterhub kubespawner nodes

我在带有 kubespawner 的 kubernetes 集群上有一个 jupyterhub 运行。据我了解,kubespawner 通过 kubernetes 在我的集群上启动 dockers,它们有自己的 python 环境和存储区域。

对于某些用户,我正在尝试导入 rpy2(或其他,这并不重要),但未安装该软件包。

我的问题:

这些 docker 从哪里获得它们的 python 环境(例如,是否有我可以在某处编辑的 docker 文件)?

如何为那个 docker 会话安装 rpy2?

如何为该用户安装 rpy2(如果可能)?

如何为集线器上的每个人安装 rpy2?

假设您使用的是官方镜像 (jupyterhub/jupyterhub),您将在 hub.docker.com or on Github.

上的相关 Dockerfile 中找到所有安装步骤

只为一个(已经 运行)容器安装一个包。您可以使用 kubectl exec your-pod -- pip install xxx

要为每个部署安装它,您必须提供自己的容器并将其包含在您的部署中。我假设这会导致与 rpy2 image 合并,这可以通过像这样的 Dockerfile 来完成:

FROM jupyterhub/singleuser
RUN pip3 --no-cache-dir install \
   https://bitbucket.org/rpy2/rpy2/get/default.tar.gz && \
   rm -rf /root/.cache