社区资源#
本节为社区提供了一个空间,用于分享关于搭建、管理和维护 JupyterHub 的信息。
重要
我们认识到 Kubernetes 有多种部署选项。作为一个项目团队,我们为终端用户提供支持的资源有限,因此我们依赖社区成员分享他们关于 Kubernetes 的集体知识和 JupyterHub 的使用经验。
我们希望您能使用本节来分享在各种基础设施上针对不同用例的部署。这里还有一个由社区维护的列表,列出了本指南和 JupyterHub Helm Chart 的用户。
请提交一个 issue/pull request 来为本节添加内容。谢谢。
提示与代码片段#
本页面收集了一些特别有用的模式和代码片段,可帮助您与 Kubernetes 集群和 JupyterHub 进行交互。如果您认为某些内容足够通用(且不够明显)可以添加到此页面,请随时提交 PR!
kubectl
自动补全#
Kubernetes 有一个辅助脚本,允许您在使用 kubectl
时自动补全命令和对象引用。这使您可以通过按 TAB 键来补全,从而节省大量时间。
请遵循适用于您平台的 kubectl 安装说明来查找 shell 自动补全的说明。
helm
自动补全#
Helm 也有一个自动补全脚本,可让您在使用 Helm 时通过按 TAB 键来补全命令。
管理 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,将您自己添加到这个按字母排序的列表中!
加州大学伯克利分校数据科学教育项目的 DataHub
巴黎附近的一组大学(由 CNRS 和 Polytechnique 的一个团队领导)部署了一个供大学使用的跨机构 JupyterHub。
Globus 运行着一个 Zero-to-JupyterHub 的实例,以帮助用户了解 Globus REST API。
社区项目资源链接#
本页面包含 JupyterHub 生态系统中其他资料的链接和参考。它可能包括其他指南、JupyterHub 部署示例或来自社区的帖子。
如果您有任何建议要添加到此页面,请提交一个 issue。
在 AWS 上自动部署 JupyterHub,来自太空望远镜软件研究所
使用 Terraform 设置 Kubernetes
terraform-deploy 仓库 该仓库包含几个在 AWS 上部署 Kubernetes 集群的示例。
Terraform 教程示例 这旨在向新手介绍 Terraform,并向他们展示如何使用它部署 AWS EKS 集群。
Terraform 博客文章 这个示例更深入地探讨了如何使用 Terraform 部署一个有特定配置的 Kubernetes 集群。它还有一篇配套的博客文章,可在 Medium 上查看。