云原生存储编排器Rook
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.Rook概述
1.rook概述
Rook是一个开源的云原生存储编排器,为Ceph存储提供平台、框架和支持,以便与云原生环境进行原生集成。
Ceph是一个分布式存储系统,提供文件、块和对象存储,部署在大规模生产集群中。
Rook自动化了Ceph的部署和管理,以提供自我管理、自我扩展和自我修复的存储服务。Rook操作员通过构建Kubernetes资源来部署、配置、配置、扩展、升级和监控Ceph来实现这一点。
Ceph运营商于2018年12月在Rook v0.9版本中宣布稳定,提供了多年的生产存储平台。Rook由云原生计算基金会(CNCF)托管,是一个毕业级项目。
Rook是用Golang实现的,ceph是用C++实现的,其中数据路径经过高度优化。
简而言之,Rook是一个自管理的分布式存储编排系统,可以为kubernetes提供便利的存储解决方案,Rook本身并不提供存储,而是kubernetes和存储之间提供适配层,简化存储系统的部署和维护工作。目前主要支持存储系统包括但不限于Ceph,Cassandra,NFS等。
从本质上来讲,Rook是一个可以提供ceph集群管理能力的Operator,Rook使用CRD一个控制器来对Ceph之类的资源进行部署和管理。
官网链接:
https://rook.io/
github地址:
https://github.com/rook/rook
2.Rook和K8S版本对应关系
如上图所示,我的K8S 1.23.17最高能使用的Rook版本为v1.13。
参考链接:
https://rook.io/docs/rook/v1.13/Getting-Started/Prerequisites/prerequisites/
二.k8s对接Rook
1.部署Rook
在部署Rook前,建议所有的worker节点删除污点且每个节点最少添加一块大于5GB的空闲磁盘。
1.下载指定版本的Rook
[root@master231 ~]# wget https://github.com/rook/rook/archive/refs/tags/v1.13.10.tar.gz
2.解压软件包
[root@master231 ~]# tar xf v1.13.10.tar.gz
3.创建Rook
[root@master231 ~]# cd rook-1.13.10/deploy/examples/
[root@master231 examples]#
[root@master231 examples]# kubectl apply -f crds.yaml -f common.yaml -f operator.yaml
4.部署Ceph
[root@master231 examples]# kubectl apply -f cluster.yaml
5.部署Rook Ceph工具
[root@master231 examples]# kubectl apply -f toolbox.yaml
6.部署CephUI
[root@master231 examples]# kubectl apply -f dashboard-external-https.yaml
7.查看Pod列表
[root@master231 examples]# kubectl get pods,svc -n rook-ceph
8.获取ceph dashboard的登录密码
[root@master231 examples]# kubectl -n rook-ceph get secrets rook-ceph-dashboard-password -o yaml
9.访问Ceph的WebUI
如上图所示,我们可以查看到当前集群节点的OSD列表啦~
其他部署方式,推荐阅读:
https://rook.io/docs/rook/v1.13/Getting-Started/quickstart/#deploy-the-rook-operator
2.查看集群的OSD列表
[root@master231 yinzhengjie]# kubectl get pods -o wide -n rook-ceph -l app=rook-ceph-tools
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
rook-ceph-tools-5846d4dc6c-nvnjv 1/1 Running 0 7m39s 10.100.140.81 worker233 <none> <none>
[root@master231 yinzhengjie]#
[root@master231 yinzhengjie]#
[root@master231 yinzhengjie]# kubectl -n rook-ceph exec -it rook-ceph-tools-5846d4dc6c-nvnjv -- bash
bash-4.4$
bash-4.4$ ceph -s
cluster:
id: 0d44970a-5b70-45f1-b78d-e495ab031fee
health: HEALTH_OK
services:
mon: 3 daemons, quorum a,b,c (age 5m)
mgr: a(active, since 3m), standbys: b
osd: 6 osds: 6 up (since 4m), 6 in (since 5m)
data:
pools: 1 pools, 1 pgs
objects: 2 objects, 449 KiB
usage: 159 MiB used, 4.5 TiB / 4.5 TiB avail
pgs: 1 active+clean
bash-4.4$
bash-4.4$ ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 4.46489 root default
-3 1.48830 host master231
0 hdd 0.48830 osd.0 up 1.00000 1.00000
3 hdd 1.00000 osd.3 up 1.00000 1.00000
-5 1.48830 host worker232
1 hdd 0.48830 osd.1 up 1.00000 1.00000
4 hdd 1.00000 osd.4 up 1.00000 1.00000
-7 1.48830 host worker233
2 hdd 0.48830 osd.2 up 1.00000 1.00000
5 hdd 1.00000 osd.5 up 1.00000 1.00000
bash-4.4$
3.K8S对接ceph
参考链接:
https://www.cnblogs.com/yinzhengjie/p/14351091.html
本文来自博客园,作者:尹正杰,转载请注明原文链接:https://www.cnblogs.com/yinzhengjie/p/18593902,个人微信: "JasonYin2020"(添加时请备注来源及意图备注,有偿付费)
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。