社区资源#

本节为社区提供了一个空间,用于分享关于搭建、管理和维护 JupyterHub 的信息。

重要

我们认识到 Kubernetes 有多种部署选项。作为一个项目团队,我们为终端用户提供支持的资源有限,因此我们依赖社区成员分享他们关于 Kubernetes 的集体知识和 JupyterHub 的使用经验。

注意

为 Z2JH 做贡献。如果您想帮助改进 Zero to JupyterHub 指南,请查看 问题页面 以及 贡献者指南

我们希望您能使用本节来分享在各种基础设施上针对不同用例的部署。这里还有一个由社区维护的列表,列出了本指南和 JupyterHub Helm Chart 的用户。

请提交一个 issue/pull request 来为本节添加内容。谢谢。

提示与代码片段#

本页面收集了一些特别有用的模式和代码片段,可帮助您与 Kubernetes 集群和 JupyterHub 进行交互。如果您认为某些内容足够通用(且不够明显)可以添加到此页面,请随时提交 PR!

kubectl 自动补全#

Kubernetes 有一个辅助脚本,允许您在使用 kubectl 时自动补全命令和对象引用。这使您可以通过按 TAB 键来补全,从而节省大量时间。

请遵循适用于您平台的 kubectl 安装说明来查找 shell 自动补全的说明。

helm 自动补全#

Helm 也有一个自动补全脚本,可让您在使用 Helm 时通过按 TAB 键来补全命令。

这里是安装 helm 自动补全的说明。.

管理 kubectl 上下文(contexts)#

人们通常会同时管理多个 Kubernetes 部署。kubectl 通过“上下文(contexts)”的概念来处理这个问题,它指定了当您键入 kubectl get XXX 时所引用的 Kubernetes 部署。

要查看当前可用的上下文列表,请使用以下命令:

kubectl config get-contexts

这将列出您所有的 Kubernetes 上下文。您可以通过输入以下命令来选择一个特定的上下文:

kubectl config use-context <CONTEXT-NAME>

为上下文指定默认命名空间#

如果您厌倦了每次输入 kubernetes 命令时都键入 namespace=XXX,这里有一个代码片段,可以让您为给定的 Kubernetes 上下文设置一个默认的命名空间:

kubectl config set-context $(kubectl config current-context) \
    --namespace=<YOUR-NAMESPACE>

上述命令仅适用于当前活动的上下文,并允许您在此上下文中省略命令中的 --namespace= 部分。

结合使用标签和选择器与 kubectl#

有时,选择一整类 Kubernetes 对象比按名称引用它们更有用。您可以将一组任意的标签附加到 Kubernetes 对象上,然后在用 kubectl 搜索时引用这些标签。

要根据标签值进行搜索,请使用 -l--selector= 关键字参数。例如,JupyterHub 为所有用户 pod 创建了一个特定的标签子集。您可以使用以下标签查询来搜索所有用户 pod:

kubectl --namespace=<YOUR-NAMESPACE> get pod \
    -l "app.kubernetes.io/component=singleuser-server"

更多信息,请参阅 Kubernetes 标签和选择器页面

请求更详细或结构化的输出#

有时,kubectl get <XXX> 的默认输出信息不足以满足您的需求,或者其结构不是您想要的。我们建议您研究一下 Kubernetes 不同的输出选项,可以像这样修改:

kubectl --namespace=<NAMESPACE> get pod -o <json|yaml|wide|name...>

您可以在 kubectl 信息页面上找到更多关于您可以生成的输出类型的信息。(点击并搜索文本“Output Options”)

这是一个由社区维护的列表,列出了使用 Zero to JupyterHub 指南和 Helm chart 来维护其 JupyterHub 的组织/个人。请向我们发送一个 Pull Request,将您自己添加到这个按字母排序的列表中!