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来安装PVChub 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
创建本地持久卷
好的,我试试看。再次感谢你,你多次解决了我的问题。