前言
今天在配置 Kubesphere 的时候,出现了下面的错误
经过排查,发现是这个原因
我通过下面命令,查看 Kubernetes 集群中的默认存储类
1 | kubectl get storageclass |
发现空空如也,所以问题应该就出现在这里了~,下面我们给 k8s 集群安装上默认的存储类
安装 nfs
我们使用的是 nfs 来作为 k8s 的存储类
首先找一台新的服务器,作为 nfs 服务端,然后进行 nfs 的安装 【服务器:192.168.177.141】
然后使用命令安装 nfs
1 | yum install -y nfs-utils |
首先创建存放数据的目录
1 | mkdir -p /data/k8s |
设置挂载路径
1 | # 打开文件 |
node 节点上安装
然后需要在 k8s 集群 node 节点上安装 nfs,这里需要在 node1 和 node2 节点上安装
1 | yum install -y nfs-utils |
执行完成后,会自动帮我们挂载上
启动 nfs
在 node 节点上配置完成后,我们就接着到刚刚 nfs 服务器,启动我们的 nfs
1 | systemctl start nfs |
配置 StorageClass
要使用 StorageClass,我们就得安装对应的自动配置程序,比如上面我们使用的是 nfs,那么我们就需要使用到一个 nfs-client 的自动配置程序,我们也叫它 Provisioner,这个程序使用我们已经配置的 nfs 服务器,来自动创建持久卷,也就是自动帮我们创建 PV
1 | 自动创建的 PV 以${namespace}-${pvcName}-${pvName}这样的命名格式创建在 NFS 服务器上的共享数据目录中 |
当然在部署 nfs-client 之前,我们需要先成功安装上 nfs 服务器,上面已经安装好了,服务地址是 192.168.177.141,共享数据目录是/data/k8s/,然后接下来我们部署 nfs-client 即可,我们也可以直接参考 nfs-client 文档,进行安装即可。
配置 Deployment
首先配置 Deployment,将里面的对应的参数替换成我们自己的 nfs 配置(nfs-client.yaml)
1 | kind: Deployment |
替换配置
将环境变量 NFS_SERVER 和 NFS_PATH 替换,当然也包括下面的 nfs 配置,我们可以看到我们这里使用了一个名为 nfs-client-provisioner 的 serviceAccount,所以我们也需要创建一个 sa,然后绑定上对应的权限:(nfs-client-sa.yaml)
1 | apiVersion: v1 |
我们这里新建的一个名为 nfs-client-provisioner 的 ServiceAccount,然后绑定了一个名为 nfs-client-provisioner-runner 的 ClusterRole,而该 ClusterRole 声明了一些权限,其中就包括对 persistentvolumes 的增、删、改、查等权限,所以我们可以利用该 ServiceAccount 来自动创建 PV。
创建 StorageClass 对象
nfs-client 的 Deployment 声明完成后,我们就可以来创建一个 StorageClass 对象了:(nfs-client-class.yaml)
1 | apiVersion: storage.k8s.io/v1 |
我们声明了一个名为 course-nfs-storage 的 StorageClass 对象,注意下面的 provisioner 对应的值一定要和上面的 Deployment 下面的 PROVISIONER_NAME 这个环境变量的值一样
1 | apiVersion: storage.k8s.io/v1 |
创建资源对象
在我们准备好上述的配置文件后,我们就可以开始创建我们的资源对象了
1 | kubectl create -f nfs-client.yaml |
创建完成后,使用下面命令来查看资源状态
1 | kubectl get pods |
我们可以设置这个 course-nfs-storage 的 StorageClass 为 Kubernetes 的默认存储后端,我们可以用 kubectl patch 命令来更新
1 | kubectl patch storageclass course-nfs-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' |
执行完命令后,我们默认存储类就配置成功了~
发布时间: 2021-01-13
最后更新: 2024-06-24
本文标题: Kubernetes学习之配置默认存储类
本文链接: https://blog-yilia.xiaojingge.com/posts/fd52ee7d.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!
