ceph是一个分布式存储系统,在现有的互联网中很多存储都是给予ceph做的,不过这里不说直接安装ceph,在linux环境中直接安装ceph很简单,网上也有很多说明,但是对于ceph使用的文章,我看很少,可能是环境的问题吧。不过在kubernetes中如果做ceph呢,这里就需要介绍一下rook,rook是一个云原生存储编排器,rook将存储软件变为自我管理,自我扩展和自我修复的存储服务。它通过自动化部署,引导,配置,供应,扩展,升级,迁移,灾难恢复,健康和资源管理来实现这一点,rook使用底层云原生容器管理,调度和编排平台提高设置履行职责。
安装ceph
rook支持kubernetes v1.16或更高版本,配置ceph之前需要注意的是在集群的节点中准备一个硬盘,不能分区格式化,并至少有3个工作节点
# yum install -y lvm2 # modprobe rbd #检查内核 # lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT vda └─vda1 LVM2_member >eSO50t-GkUV-YKTH-WsGq-hNJY-eKNf-3i07IB ├─ubuntu--vg-root ext4 c2366f76-6e21-4f10-a8f3-6776212e2fe4 / └─ubuntu--vg-swap_1 swap 9492a3dc-ad75-47cd-9596-678e8cf17ff9 [SWAP] vdb # DISK="/dev/vdb" # sgdisk --zap-all $DISK # dd if=/dev/zero of="$DISK" bs=1M count=100 oflag=direct,dsync # blkdiscard $DISK # ls /dev/mapper/ceph-* | xargs -I% -- dmsetup remove % # rm -rf /dev/ceph-* # rm -rf /dev/mapper/ceph--* # partprobe $DISK
前面是基本准备,后面是针对安装过ceph的环境清理ceph环境,不过两者都可以,这里需要注意的是自己的磁盘是那个。清理后就可以直接部署ceph集群了,下载rook
$ git clone --single-branch --branch master https://github.com/rook/rook.git cd rook/deploy/examples kubectl create -f crds.yaml -f common.yaml -f operator.yaml kubectl create -f cluster.yaml
这里生产环境中部署的方法,rook也提供了测试环境部署方法
cluster.yaml:在裸机上运行的生产集群的集群设置。至少需要三个工作节点。 cluster-on-pvc.yaml:在动态云环境中运行的生产集群的集群设置。 cluster-test.yaml:用于测试环境(例如 minikube)的集群设置。
部署之后稍等一会,所有服务会启动起来
[root@iZ2zeeze16lwaj9zdnsfmjZ ~]# kubectl -n rook-ceph get pod NAME READY STATUS RESTARTS AGE csi-cephfsplugin-htv2v 3/3 Running 0 44d csi-cephfsplugin-kslwv 3/3 Running 0 44d csi-cephfsplugin-ph5q9 3/3 Running 0 44d csi-cephfsplugin-provisioner-8559dd5c9b-f7q9h 6/6 Running 3 44d csi-cephfsplugin-provisioner-8559dd5c9b-v48xn 6/6 Running 0 44d csi-rbdplugin-hf5vs 3/3 Running 0 44d csi-rbdplugin-provisioner-588cf9c8b8-9l28j 6/6 Running 1 44d csi-rbdplugin-provisioner-588cf9c8b8-qp597 6/6 Running 0 44d csi-rbdplugin-v2k4l 3/3 Running 0 44d csi-rbdplugin-vfqms 3/3 Running 0 44d rook-ceph-crashcollector-cn-beijing.172.32.239.42-76bbf8cbmjsc5 1/1 Running 0 44d rook-ceph-crashcollector-cn-beijing.172.32.239.47-7585bb5d5t7cn 1/1 Running 0 44d rook-ceph-crashcollector-cn-beijing.172.32.239.48-59994fdfrprd8 1/1 Running 0 44d rook-ceph-mds-myfs-a-7d5b868c5b-q2vp8 1/1 Running 0 44d rook-ceph-mds-myfs-b-55f9c66c48-jrkf2 1/1 Running 0 44d rook-ceph-mgr-a-6f65d69856-xjcgl 1/1 Running 0 44d rook-ceph-mon-a-7b7cbcc78f-t4hn5 1/1 Running 0 44d rook-ceph-mon-b-66b8c96474-hc52h 1/1 Running 0 44d rook-ceph-mon-c-7bf9978d49-tdc2c 1/1 Running 0 44d rook-ceph-operator-5f456ccd6b-qz54g 1/1 Running 0 44d rook-ceph-osd-0-f9f96476b-gn2sr 1/1 Running 0 43d rook-ceph-osd-1-b48cf7668-jdjgz 1/1 Running 0 43d rook-ceph-osd-2-7cc89bcdf7-4tpz5 1/1 Running 0 43d rook-ceph-osd-prepare-cn-beijing.172.32.239.42-k5bc5 0/1 Completed 0 22d rook-ceph-osd-prepare-cn-beijing.172.32.239.47-jgwkw 0/1 Completed 0 22d rook-ceph-osd-prepare-cn-beijing.172.32.239.48-bf4h4 0/1 Completed 0 22d rook-ceph-rgw-my-store-a-58c78b6497-rzr69 1/1 Running 0 44d rook-ceph-tools-6f56cdd85d-bxcbx 1/1 Running 0 44d
这是我安装好的,可以安装一个ceph的客户端用来管理ceph,然后在安装一个仪表版
kubectl create -f deploy/examples/toolbox.yaml kubectl create -f dashboard-ingress-https.yaml kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode && echo
默认cluster.yaml中开启了仪表盘,然后就需要创建域名,并获取密码登录,上面最后一步是获取admin的密码,我这里已经使用了就不截图了,
sh-4.4$ ceph status cluster: id: b0874b1f-3d2b-4826-88fd-8836d117a5ec health: HEALTH_OK services: mon: 3 daemons, quorum a,b,c (age 3d) mgr: a(active, since 6w) mds: 1/1 daemons up, 1 hot standby osd: 3 osds: 3 up (since 6w), 3 in (since 6w) rgw: 1 daemon active (1 hosts, 1 zones) data: volumes: 1/1 healthy pools: 10 pools, 145 pgs objects: 1.08k objects, 436 MiB usage: 4.6 GiB used, 295 GiB / 300 GiB avail pgs: 145 active+clean io: client: 3.7 KiB/s rd, 1.2 KiB/s wr, 3 op/s rd, 1 op/s wr
我这里就只用了三个节点三个硬盘,客户端已经加了,目前正在使用中,好了,下个章节在说一下ceph的用法吧,没有了看看其他的吧。
参考资料:https://rook.github.io/docs/rook/latest/pre-reqs.html
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏