rook编排安装ceph

avatar 2022年3月25日18:11:31 评论 927 次浏览

ceph是一个分布式存储系统,在现有的互联网中很多存储都是给予ceph做的,不过这里不说直接安装ceph,在linux环境中直接安装ceph很简单,网上也有很多说明,但是对于ceph使用的文章,我看很少,可能是环境的问题吧。不过在kubernetes中如果做ceph呢,这里就需要介绍一下rookrook是一个云原生存储编排器,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

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: