KubeSphere 添加NFS存储

网友投稿 1882 2022-11-07

KubeSphere 添加NFS存储

KubeSphere 添加NFS存储

持久化存储是安装 KubeSphere 的必备条件。使用 ​​KubeKey​​​ 搭建 KubeSphere 集群时,可以安装不同的存储系统作为​​插件​​。在 Linux 上通过 KubeKey 安装 KubeSphere 的一般步骤如下:

安装 Kubernetes。安装所提供的任何插件。通过​​ks-installer​​ 安装 KubeSphere。

在第 2 步中,必须安装可用的 StorageClass,包括:

StorageClass 本身必要情况下,还需为 StorageClass 安装存储插件

备注

某些存储系统需要您预先准备存储服务器,以提供外部存储服务。

KubeKey 如何安装不同的存储系统

KubeKey 会为集群创建​​一个配置文件​​​(默认为 ​​config-sample.yaml​​),其中包含定义不同资源(包括各种插件)的全部必要参数。QingCloud CSI 等不同的存储系统也能通过 Helm Chart 或 YAML 作为插件进行安装。若要让 KubeKey 以预期的方式来安装这些存储系统,就必须为 KubeKey 提供这些存储系统的必要配置。

通常,有两种方法能使 KubeKey 应用即将安装的存储系统的配置。

直接在 ​​config-sample.yaml​​​ 中的​​addons​​ 字段下输入必要的参数。为插件创建一个单独的配置文件,列出所有必要的参数,并在​​config-sample.yaml​​ 中提供文件的路径,以便 KubeKey 在安装过程中引用该路径。

默认存储类型

KubeKey 支持安装不同的存储插件和存储类型。无论您要安装哪种存储系统,都可以在其配置文件中指定是否设为默认存储类型。如果 KubeKey 检测到未指定默认存储类型,则将默认安装 ​​OpenEBS​​。

OpenEBS 本地 PV 动态供应器可以使用节点上的唯一 HostPath(目录)来创建 Kubernetes 本地持久卷,以持久化数据。用户没有特定的存储系统时,可以通过默认的 OpenEBS 快速上手。

支持的 CSI 插件

Kuberentes 此前已宣布将在 1.21 版本中移除树内 (in-tree) 存储插件。有关更多信息,请参见 ​​Kubernetes In-Tree to CSI Volume Migration Moves to Beta​​。因此,建议您安装 CSI 插件。

支持的 CSI 插件:

​​neonsan-csi​​​​qingcloud-csi​​​​ceph-csi​​

多存储解决方案

如果打算安装多个存储插件,那么只能将其中一个设置为默认存储类型。否则,KubeKey 将无法识别使用哪种存储类型。

安装部署

上传⾄ kubesphere 的 master 节点,解压缩

[root@master01 charts]# lscsi-neonsan csi-qingcloud nfs-client-provisioner[root@master01 nfs-client-provisioner]# pwd/root/charts/nfs-client-provisioner[root@master01 nfs-client-provisioner]# lsChart.yaml ci OWNERS README.md templates values.yaml

准备好 nfs 存储服务,本环境使⽤的为⽂件存储 vNAS , IP 地址为:192.168.100.3,共享⽬录

为: /mnt/shared_dir ,存储权限: rw,insecure,sync,no_subtree_check,no_root_squash\

[root@jenkins-agent kubernetes]# pwd/ifs/kubernetes[root@jenkins-agent kubernetes]# cat /etc/exports/ifs/kubernetes 192.168.100.0/24(rw,sync,no_all_squash,no_subtree_check)[root@master01 ~]# showmount -e 192.168.100.3Export list for 192.168.100.3:/ifs/kubernetes 192.168.100.0/24

config-sample.yaml 添加如下对接nfs存储

addons: - name: nfs-client namespace: kube-system sources: chart: name: nfs-client-provisioner path: /root/kubesphere-all-v3.1.1-offline-linux-amd64/charts values: - nfs.server=192.168.0.22 - nfs.path=/mnt/kube - image.repository=registry--beijing.aliyuncs.com/kubesphereio/nfs-subdir-external-provisioner - image.tag=v4.0.2 - storageClass.defaultClass=true

请特别注意 ​​addons​​ 字段,您必须在该字段下提供 NFS-client 的信息。

​​storageClass.defaultClass​​​ 字段决定是否将 NFS-client Provisioner 的存储类型设置为默认存储类型。如果您输入​​false​​​,KubeKey 将安装​​OpenEBS​​ 来提供本地存储卷,您在集群上创建工作负载时,不会动态供应本地存储卷。安装 KubeSphere 之后,您可以直接在控制台上更改默认存储类型。

[root@master01 charts]# helm upgrade --install nfs-client --set nfs.server=192.168.0.22 --set nfs.path=/mnt/kube --set image.repository=registry--beijing.aliyuncs.com/kubesphereio/nfs-subdir-external-provisioner --set image.tag=v4.0.2 nfs-client-provisioner -n kube-system Release "nfs-client" does not exist. Installing it now.NAME: nfs-clientLAST DEPLOYED: Mon Aug 2 15:39:08 2021NAMESPACE: kube-systemSTATUS: deployedREVISION: 1TEST SUITE: NoneYou have new mail in /var/spool/mail/root

[root@master01 ~]# helm list -ANAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSIONks-redis kubesphere-system 1 2021-08-31 19:40:21.389229637 +0800 CST deployed redis-ha-3.9.0 5.0.5 nfs-client kube-system 1 2021-08-31 19:38:50.206108647 +0800 CST deployed nfs-client-provisioner-1.2.8 3.1.0 notification-manager kubesphere-monitoring-system 1 2021-08-31 19:41:44.671151912 +0800 CST deployed notification-manager-1.0.0 1.0.0 snapshot-controller kube-system 1 2021-08-31 19:40:07.967542711 +0800 CST deployed snapshot-controller-0.1.0 2.1.1

[root@master01 ~]# kubectl get pvc --all-namespacesNAMESPACE NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEkubesphere-monitoring-system prometheus-k8s-db-prometheus-k8s-0 Bound pvc-01e67c5e-50f4-4bd4-ae40-b188c86c5293 20Gi RWO nfs-client 36mkubesphere-monitoring-system prometheus-k8s-db-prometheus-k8s-1 Bound pvc-61e2d87a-e56c-43cd-96f6-a6552efbea6a 20Gi RWO nfs-client 36mkubesphere-system data-redis-ha-server-0 Bound pvc-45eb62a4-312f-47c4-8419-6fedebd332a9 2Gi RWO nfs-client 38mkubesphere-system data-redis-ha-server-1 Bound pvc-f65e220f-2c2d-4d43-999a-a5f97cfa27f2 2Gi RWO nfs-client 38mkubesphere-system data-redis-ha-server-2 Bound pvc-3320370f-f0d9-47ba-8967-a21afcb14d7e 2Gi RWO nfs-client 37m[root@master01 ~]# kubectl get pvNAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGEpvc-01e67c5e-50f4-4bd4-ae40-b188c86c5293 20Gi RWO Delete Bound kubesphere-monitoring-system/prometheus-k8s-db-prometheus-k8s-0 nfs-client 37mpvc-3320370f-f0d9-47ba-8967-a21afcb14d7e 2Gi RWO Delete Bound kubesphere-system/data-redis-ha-server-2 nfs-client 38mpvc-45eb62a4-312f-47c4-8419-6fedebd332a9 2Gi RWO Delete Bound kubesphere-system/data-redis-ha-server-0 nfs-client 38mpvc-61e2d87a-e56c-43cd-96f6-a6552efbea6a 20Gi RWO Delete Bound kubesphere-monitoring-system/prometheus-k8s-db-prometheus-k8s-1 nfs-client 37mpvc-f65e220f-2c2d-4d43-999a-a5f97cfa27f2 2Gi RWO Delete Bound kubesphere-system/data-redis-ha-server-1 nfs-client 38m

nfs目录名称=命名空间+命名空间下的pvc_name+pv_name

[root@jenkins-agent kubernetes]# lsdefault-my-pvc3-pvc-3d36c173-2846-4b60-81b3-72c9ea710b2ekubesphere-monitoring-system-prometheus-k8s-db-prometheus-k8s-0-pvc-01e67c5e-50f4-4bd4-ae40-b188c86c5293kubesphere-monitoring-system-prometheus-k8s-db-prometheus-k8s-1-pvc-61e2d87a-e56c-43cd-96f6-a6552efbea6akubesphere-system-data-redis-ha-server-0-pvc-45eb62a4-312f-47c4-8419-6fedebd332a9kubesphere-system-data-redis-ha-server-1-pvc-f65e220f-2c2d-4d43-999a-a5f97cfa27f2kubesphere-system-data-redis-ha-server-2-pvc-3320370f-f0d9-47ba-8967-a21afcb14d7e

[root@jenkins-agent kubernetes]# df -hFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 13G 5.8G 70% /

如果创建的通过sc创建的pvc处于pending状态,查看信息如下

failed to provision volume with StorageClass "nfs-storage-provisioner": unable to create directory to provision new pv: permission denied

那么chmod -R 777 nfs_path

[root@jenkins-agent ~]# ls -ld /ifsdrwxrwxrwx 3 root root 4096 Aug 23 20:43 /ifs[root@jenkins-agent ~]# ls -ld /ifs/kubernetes/drwxrwxrwx 8 root root 4096 Aug 31 19:41 /ifs/kubernetes/

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:信道 单工 半双工 全双工
下一篇:关于maven依赖 ${xxx.version}报错问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~