如何在 K8s 上为 JuPyterHub 运行 上的每个笔记本设置参数

How do I set parameters for each notebook on JuPyterHub running on K8s

我想设置这里定义的一些参数(https://github.com/nteract/papermill#python-version-support)。问题是,我希望能够通过 UI 执行此操作。我的集群上安装了一个 JHub,打开它时,我希望默认设置某些参数。

此外,当我通过 papermill 传递参数时(上面的脚本保存在某个地方,然后我将通过 papermill 运行 它),我希望后者覆盖前者。

我尝试在纯 JuPyter 笔记本中研究几个主题,但没有成功。

为了让用户在笔记本启动后立即访问某些参数,ipython 需要知道启动单元。对于 JuPyterHub,这可以通过以下命令完成:

proxy:
  secretToken: "yada yada"
singleuser:
  image:
    name: some_acc_id.dkr.ecr.ap-south-1.amazonaws.com/demo
    tag: 12h
  lifecycleHooks:
    postStart:
      exec:
        command: ["/bin/sh", "-c", 'ipython profile create; cd ~/.ipython/profile_default/startup; echo ''run_id = "sample" ''> aviral.py']
  imagePullSecret:
    enabled: true
    registry: some_acc_id.dkr.ecr.ap-south-1.amazonaws.com
    username: aws
    email: aviral@abc.com

确保您正确转义了 yaml 中的引号,或者只需按照我上面所做的操作即可。

完成后,papermill 将覆盖参数,但为此,您必须确保单元格被标记为 "parameters"。例如,在我的 jupyterhub 中,每个启动的笔记本都有 run_id 变量,其值为 "sample"