【问题标题】:Kubernetes Jupyter Server with Example Notebook and Persistent Storage具有示例笔记本和持久存储的 Kubernetes Jupyter 服务器
【发布时间】:2020-09-19 13:55:41
【问题描述】:

我正在尝试使用 docker 容器运行 jupyter 实验室服务器 Kubernetes 部署,该容器设置为 Jupiter 服务器,并且在 jupyter 工作目录中包含示例笔记本(和 Jupyter 配置)。我想将此工作目录链接到持久存储,但是在将(Azure 文件共享)卷挂载到容器(如 deployement.yaml 文件中指定)时,示例笔记本被删除(由于挂载了空存储)。有没有办法挂载容器并保留笔记本和配置?

部署文件看起来或多或少(一些不重要的部分被'...'替换)如下:

apiVersion: apps/v1beta2 kind: Deployment metadata: name: {{ include "api-chart.fullname" . }} labels: ... spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: {{ include "api-chart.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} template: metadata: labels: ... volumes: - name: personal-volume azureFile: secretName: {{ .Values.sharedVolumes.personalSecretName }} shareName: personal readOnly: false containers: - name: {{ .Chart.Name }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} ports: - name: http containerPort: {{ .Values.service.targetPort }} protocol: TCP volumeMounts: - name: personal-volume mountPath: "/workspace" subPath: {{ .Values.username }} resources: ...

【问题讨论】:

  • 你能展示你的部署吗?
  • 尝试注释掉subPath: {{ .Values.username }}

标签: azure kubernetes kubernetes-helm jupyter-lab


【解决方案1】:

您没有提供太多关于如何安装存储服务的信息。我首先要看的是确保使用将回收策略设置为 Retain 的 StorageClass。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: azurefile
provisioner: kubernetes.io/azure-file
mountOptions:
  - dir_mode=0777
  - file_mode=0777
  - uid=0
  - gid=0
  - mfsymlinks
  - cache=strict
parameters:
  skuName: Standard_LRS
reclaimPolicy: Retain

【讨论】:

  • 安装卷时reclaimPolicy: Retain会阻止容器中的文件被删除吗?似乎不会。
猜你喜欢
  • 2019-04-11
  • 2018-01-12
  • 2021-04-22
  • 1970-01-01
  • 1970-01-01
  • 2020-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多