Kubernetes:创建动态本地卷以自动为PVC分配PVs的最佳实践是什么?

Kubernetes:创建动态本地卷以自动为PVC分配PVs的最佳实践是什么?,kubernetes,Kubernetes,最近,我通过kubeadm init在CentOS7集群上安装了k8s。不幸的是,我遇到了很多问题。最大的问题是“如何为自动为PVC分配PVs创建动态本地存储/卷?” 问:为什么本地存储不是云存储服务 这是我校新实验室的限制 问题描述: k8s(v1.18.0)在安装过程成功后没有为我创建默认存储类。我不确定情况是否正常。然而,当我在k8s上安装我的第一个应用程序时,我从中得到了错误,因为它可以找到一个合适的PV来安装PVChub db dir。然后我尝试手动创建一个本地存储类和一个PV,如下所

最近,我通过
kubeadm init
在CentOS7集群上安装了k8s。不幸的是,我遇到了很多问题。最大的问题是“如何为自动为PVC分配PVs创建动态本地存储/卷?”

问:为什么本地存储不是云存储服务

这是我校新实验室的限制

问题描述:

k8s(v1.18.0)在安装过程成功后没有为我创建默认存储类。我不确定情况是否正常。然而,当我在k8s上安装我的第一个应用程序时,我从中得到了错误,因为它可以找到一个合适的PV来安装PVC
hub db dir
。然后我尝试手动创建一个本地存储类和一个PV,如下所示:

local storage.yaml

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
apiVersion: v1
kind: PersistentVolume
metadata:
  name: hub-db-pv
  namespace: jhub
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: local-storage
  local:
    path: /home/k8s_data_dir/jhub_dir
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - node1
          - node2
          - node3
          - node4
hub db pv.yaml

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
apiVersion: v1
kind: PersistentVolume
metadata:
  name: hub-db-pv
  namespace: jhub
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: local-storage
  local:
    path: /home/k8s_data_dir/jhub_dir
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - node1
          - node2
          - node3
          - node4
在我应用这些
yaml
文件之后,JupyterHub就可以工作了。我认为使用JupyterHub会成功。但我太天真了。我进入JupyterHub主页,然后运行失败,因为JupyterHub为我创建了一个新的PVC,但它无法绑定合适的PV。 我猜这个错误是由于我的本地存储类无法自动创建适合PVC的PV造成的。然后我尝试使用外部供应器,但它无法解决我的本地存储问题。(我根据
sig storage lib external provisioner
的教程来做。)

因此,我的问题是:

  • 解决本地存储问题的最佳做法是什么
  • 如果你有一个折衷的方法来做同样的事情,请帮助我
    最后,我真诚地感谢你的帮助

    使用
    本地存储实现动态PV创建的高级步骤

    有关如何管理Kubernetes群集中的本地卷的文档

  • 为provisioner发现创建目录
  • 在发现目录中准备和设置本地卷
  • 下一步是文档

  • 创建一个StorageClass
  • 创建本地持久卷

  • 好的,我试试看。再次感谢你,你多次解决了我的问题。