首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes上的木星中心:自动化的pvc没有创建新的本地持久卷。

Kubernetes上的木星中心:自动化的pvc没有创建新的本地持久卷。
EN

Stack Overflow用户
提问于 2021-06-21 13:55:33
回答 2查看 413关注 0票数 0

我试图在RHEL 8机器上将木星中心(Zero to Hero)部署到我的本地Kubernetes上。经过几个小时的尝试,基本服务现在正在运行。我为主服务创建了一个pv,它运行得很好。

代码语言:javascript
复制
Name:              hub-db-dir
Labels:            <none>
Annotations:       pv.kubernetes.io/bound-by-controller: yes
Finalizers:        [kubernetes.io/pv-protection]
StorageClass:      local-storage
Status:            Bound
Claim:             jupyter/hub-db-dir
Reclaim Policy:    Retain
Access Modes:      RWO
VolumeMode:        Filesystem
Capacity:          5Gi
Node Affinity:
  Required Terms:
    Term 0:        kubernetes.io/hostname in [host]
Message:
Source:
    Type:  LocalVolume (a persistent volume backed by local storage on a node)
    Path:  /temp
Events:    <none>

但是,一旦登录,我就会收到以下消息:屏幕截图

我发现K8不会自己创建一个新的pv。即使我创建了一个(具有适当名称),它也会失败。

有人有办法解决这个问题吗?

我的StorageClass:

代码语言:javascript
复制
Name:            local-storage
IsDefaultClass:  Yes
Annotations:     kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"},"name":"local-storage"},"provisioner":"kubernetes.io/no-provisioner","volumeBindingMode":"WaitForFirstConsumer"}
,storageclass.kubernetes.io/is-default-class=true
Provisioner:           kubernetes.io/no-provisioner
Parameters:            <none>
AllowVolumeExpansion:  <unset>
MountOptions:          <none>
ReclaimPolicy:         Delete
VolumeBindingMode:     WaitForFirstConsumer
Events:                <none>
EN

回答 2

Stack Overflow用户

发布于 2021-06-21 14:02:14

根据你提供的信息:

代码语言:javascript
复制
provisioner: kubernetes.io/no-provisioner

根据:https://kubernetes.io/docs/concepts/storage/storage-classes/#local

本地卷目前不支持动态配置,但是仍然应该创建一个StorageClass来将卷绑定延迟到Pod调度。这是由WaitForFirstConsumer卷绑定模式指定的。

在云提供商上,我也遇到过类似的问题,即卷不支持配置的某些(标准)部分,因此不按预期提供。替代方法是使用不同的存储方法(云对象存储/S3/etc或数据库)。

另见:

https://kubernetes.io/docs/concepts/storage/volumes/#local

在使用本地卷时,必须设置PersistentVolume nodeAffinity。Kubernetes调度程序使用PersistentVolume nodeAffinity将这些Pods调度到正确的节点。

票数 0
EN

Stack Overflow用户

发布于 2021-06-22 07:34:07

通常,您可以从Kubernetes文档开始。这里,您可以找到存储类概念。您还将找到以某种方式支持哪些解决方案的信息。必须指定此字段。您在RHEL 8机器中使用本地Kubernetes,因此本地卷可以帮助您。

请看下面的例子:

代码语言:javascript
复制
apiVersion: v1
kind: PersistentVolume
metadata:
  name: example-pv
spec:
  capacity:
    storage: 100Gi
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: local-storage
  local:
    path: /mnt/disks/ssd1
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - example-node

这个例子显示了一个使用PersistentVolume卷和nodeAffinitynodeAffinity。在使用PersistentVolume卷时,需要设置local卷。还建议创建一个StorageClass,将volumeBindingMode设置为WaitForFirstConsumer

本地卷目前不支持动态配置,但是仍然应该创建一个StorageClass来将卷绑定延迟到Pod调度。这是由WaitForFirstConsumer卷绑定模式指定的。

延迟卷绑定允许调度程序在为PersistentVolume选择合适的PersistentVolumeClaim时考虑到Pod的所有调度约束。

如果您正在寻找为裸金属集群配置存储的完整指南,您可以找到它这里。正如我前面提到的,本地卷目前不支持动态配置。但是,您可以通过使用NFS来解决这个问题。

nfs卷允许将现有的NFS (网络文件系统)共享挂载到Pod中。与emptyDir不同的是,当Pod被移除时会被擦除,nfs卷的内容会被保留,而卷只是被卸载。这意味着NFS卷可以预先填充数据,数据可以在荚之间共享。NFS可以由多个写入器同时挂载。注意:您必须有自己的NFS服务器运行,然后才能使用导出的共享。

这里 --您可以根据官方文档找到NFS示例。也跟随本指南获得更多信息,如何设置库伯奈特裸金属动态存储分配.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68069226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档