千家信息网

kubernetes中如何使用rook-edgefs

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,kubernetes中如何使用rook-edgefs,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。环境ubuntu20 server,
千家信息网最后更新 2025年02月03日kubernetes中如何使用rook-edgefs

kubernetes中如何使用rook-edgefs,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

  1. 环境ubuntu20 server, kubernetes 1.18+, rook 1.4, 镜像的科学环境

  2. rook目录支持的stable储存方案有ceph, edgefs。edgefs用了下,感觉还更吃内存和cpu,现在已Deprecated,勿用。参考https://rook.io/docs/rook/v1.4/edgefs-quickstart.html

  3. 配置系统 sudo vi /etc/sysctl.conf

net.core.rmem_default = 80331648net.core.rmem_max = 80331648net.core.wmem_default = 33554432net.core.wmem_max = 50331648vm.dirty_ratio = 10vm.dirty_background_ratio = 5vm.swappiness = 15

使之生效 sudo sysctl -p

  1. 创建一个简单的EdgeFS Rook群集。根据实际情况编辑cluster.yaml文件,文档中有注释。比如dataDirHostPath: /data sysRepCount: 2,参考https://rook.io/docs/rook/v1.4/edgefs-cluster-crd.html

#先创建dataDirHostPath指定的目录sudo mkdir /data
git clone --single-branch --branch release-1.4 https://github.com/rook/rook.gitcd rook/cluster/examples/kubernetes/edgefskubectl create -f operator.yamlkubectl create -f cluster.yaml
  1. 查看集群运行状态。运行结果,状态须为Running

$ kubectl -n rook-edgefs-system get pod -o wideNAME                                    READY   STATUS    RESTARTS   AGE     IP             NODE    NOMINATED NODE   READINESS GATESrook-discover-nhxv4                     1/1     Running   0          2m3s    10.244.1.98    ser40              rook-discover-tprdl                     1/1     Running   0          2m3s    10.244.0.162   ser30              rook-discover-wlgvz                     1/1     Running   0          2m3s    10.244.2.24    ser50              rook-edgefs-operator-5d49489dbd-jqzgb   1/1     Running   0          2m44s   10.244.1.97    ser40              
$ kubectl -n rook-edgefs get podNAME                               READY   STATUS    RESTARTS   AGErook-edgefs-mgr-648457b454-s2hkr   3/3     Running   0          8m55srook-edgefs-target-0               3/3     Running   0          8m55srook-edgefs-target-1               3/3     Running   0          8m55s
  1. 初始化EdgeFShttps://rook.io/docs/rook/v1.4/edgefs-iscsi-crd.html

kubectl get po --all-namespaces | grep edgefs-mgrkubectl exec -it -n rook-edgefs rook-edgefs-mgr-648457b454-s2hkr -- env COLUMNS=$COLUMNS LINES=$LINES TERM=linux toolbox

6.0 查看节点状态

efscli system status

6.1 初始化EdgeFS集群

efscli system init

6.2 创建新的本地名称空间

efscli cluster create Hawaii

6.3 创建集群名称空间"夏威夷"的逻辑租户,如果需要,也可以进行存储

efscli tenant create Hawaii/Pepsiefscli bucket create Hawaii/Pepsi/bk1

6.4 创建service isc-pepsi后面要用

efscli service create iscsi isc-pepsiefscli service serve isc-pepsi Hawaii/Pepsi/bk1/lun1 X-volsize=20G

6.5 集群运行后,创建NFS,SMB,S3或iSCSI存储,以供集群中的其他应用程序使用。本例使用iSCSI,具体各自需求。name属性为6.4创建的isc-pepsi

# cd rook/cluster/examples/kubernetes/edgefs# 修改sudo vi iscsi.yaml中的name为6.4定义好的serviceapiVersion: edgefs.rook.io/v1kind: ISCSImetadata:  name: isc-pepsi # this name has to match efscli service  namespace: rook-edgefs
#应用修改kubectl create -f iscsi.yaml
  1. 创建csi接口https://rook.io/docs/rook/v1.4/edgefs-csi.html

7.0 前提 如果你的kubernetes版本低的话,需要开启一些特性门控。参考https://kubernetes.io/zh/docs/reference/command-line-tools-reference/feature-gates/,本例使用的1.8+,不用改

7.1 Kubernetes CSI drivers require CSIDriver and CSINodeInfo resource types to be defined on the cluster. Check if they are already defined:

kubectl get customresourcedefinition.apiextensions.k8s.io/csidrivers.csi.storage.k8s.iokubectl get customresourcedefinition.apiextensions.k8s.io/csinodeinfos.csi.storage.k8s.io

不存在,创建

kubectl create -f https://raw.githubusercontent.com/kubernetes/csi-api/release-1.13/pkg/crd/manifests/csidriver.yamlkubectl create -f https://raw.githubusercontent.com/kubernetes/csi-api/release-1.13/pkg/crd/manifests/csinodeinfo.yaml

7.2 安装工具,ubuntu20.04 server默认安装了

apt install -y open-iscsi

7.3 创建ISCSI驱动,我放在rook-edgefs命名空间下。需要编辑edgefs-iscsi-csi-driver.yaml中的default命名空间为rook-edgefs

cd cluster/examples/kubernetes/edgefs/csi/iscsikubectl create ns rook-edgefs-csikubectl -n rook-edgefs-csi create secret generic edgefs-iscsi-csi-driver-config --from-file=./edgefs-iscsi-csi-driver-config.yamlkubectl -n rook-edgefs-csi apply -f edgefs-iscsi-csi-driver.yaml

查看结果

$ kubectl get pods -n rook-edgefs-csiNAME                            READY   STATUS    RESTARTS   AGEedgefs-iscsi-csi-controller-0   4/4     Running   0          11medgefs-iscsi-csi-node-4f57b     2/2     Running   8          11medgefs-iscsi-csi-node-lbgkp     2/2     Running   2          11medgefs-iscsi-csi-node-qnjvn     2/2     Running   6          11m
  1. 创建一个动态预配置卷。parameters就是步骤6创建好的,要对应

apiVersion: storage.k8s.io/v1kind: StorageClassmetadata:  name: edgefs-iscsi-csi-storageclassprovisioner: io.edgefs.csi.nfsparameters:  segment: rook-edgefs  service: isc-pepsi  cluster: Hawaii  tenant: pepsi  bucket: bk1
  1. 使用刚创建的StorageClass

看完上述内容,你们掌握kubernetes中如何使用rook-edgefs的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

集群 空间 状态 参考 运行 内容 名称 方法 更多 环境 目录 结果 问题 存储 应用 配置 束手无策 为此 不用 内存 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发工程师考试题库 福州企业级服务器供应费用 在数据库概念设计中 最 教育软件开发报名咨询 互联网电力和网络安全 网络安全入门教学 黑龙江网络服务器机柜服务器 信息网络安全类证书有哪些 软件开发大学生的目标 浙江数据库日志审计维护 大学校园网络安全威胁分别有哪些 王者荣耀全部服务器维修 网络安全学生组织 linux搭建php网页服务器 中国公安大学举办网络安全大赛 曙光 l620 G35服务器 网络安全法内容纲要 兴华实时数据库 代理服务器怎么取消 唐家工行软件开发中心 战舰世界直营服怎么改服务器 千牛挂服务器安全吗 无锡富洲互联网科技有限公司 贵州六三伍三互联网科技 网络安全执法工作开展情况 服务器怎么禁用广告 软件开发公司哪家好厂商特供 网络安全波尔远控 魔兽世界哪个服务器是网通 浅谈网络技术对教育课堂的影响
0