【问题标题】:How do I resolve persistentvolumeclaims "hub-db-dir" is forbidden error while deploying jupyter hub on kubernetes?在 kubernetes 上部署 jupyter hub 时,如何解决 persistentvolumeclaims "hub-db-dir" is disabled 错误?
【发布时间】:2019-05-09 11:50:55
【问题描述】:

我想在 Kubernetes 集群上部署 jupyter notebook。按照官方文档(https://zero-to-jupyterhub.readthedocs.io/en/latest/setup-jupyterhub.html),我运行了以下命令:

# Suggested values: advanced users of Kubernetes and Helm should feel
# free to use different values.
RELEASE=jhub
NAMESPACE=jhub

helm upgrade --install $RELEASE jupyterhub/jupyterhub \
  --namespace $NAMESPACE  \
  --version=0.8.2 \
  --values jupyter-hub-config.yaml

其中jupyter-hub-config.yaml 是文档中提到的配置文件,包含由命令openssl rand -hex 32 生成的令牌。

在运行上述命令时,我收到以下错误:

Error: release jhub failed: persistentvolumeclaims "hub-db-dir" is forbidden: Internal error occurred: 8 default StorageClasses were found

我尝试研究安装jhub 的各种方法,但没有人能指出这种方法的任何差异,我会认为这里会导致错误。

命令kubectl get storageclass的o/p是:

NAME                                     PROVISIONER             AGE
aviral-worker-volume (default)           kubernetes.io/aws-ebs   14d
default (default)                        kubernetes.io/aws-ebs   14d
es-ebs-storage (default)                 kubernetes.io/aws-ebs   7d
gp2 (default)                            kubernetes.io/aws-ebs   14d
prometheus-monitoring-volume (default)   kubernetes.io/aws-ebs   8d
replicated (default)                     kubernetes.io/aws-ebs   14d
replicated-premkit (default)             kubernetes.io/aws-ebs   14d
replicated-statsd (default)              kubernetes.io/aws-ebs   14d

【问题讨论】:

  • 你能提供命令“kubectl get storageclass”的输出吗?
  • 嗨@VasilyAngapov,我已经对问题进行了要求的更改。谢谢!

标签: kubernetes jupyter kubernetes-helm kubectl jupyterhub


【解决方案1】:

您的集群中有 8 个默认存储类,这绝对不正常。 您应该确保只有一个默认存储类。

我不知道应该默认哪一个,这完全取决于您的集群,我不想为这个决定负责。但对于除默认存储类之外的所有存储类,您都需要这样做:

kubectl patch storageclass <your-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'

【讨论】:

  • 你能告诉我8个存储类有什么危害或异常吗?为什么这与集群有关?
  • 好吧,本身有 8 或 80 个默认存储类大多是无害的,但会导致您面临错误。您可以尝试指定 Jupyter Hub 使用的特定存储类,但为此您需要下载图表、解压缩并检查 value.yaml 文件以查找负责存储类的变量。并且每次安装使用卷的 Helm 图表时都必须这样做。
  • 感谢您抽出时间向我解释。对于初学者,您能否指导我找到可以学习storageclasses 并可以推断出这些关键点的资源?我确实阅读了关于 storageclasses 的 kubernetes 概念页面。
  • 您可以在此处阅读有关默认存储类的信息:kubernetes.io/docs/tasks/administer-cluster/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 2019-08-28
  • 2019-04-22
  • 2021-06-06
  • 1970-01-01
相关资源
最近更新 更多