Akemi

Rook部署ceph

2024/06/04

rook是一个云原生存储编排器,为Ceph存储提供平台、框架和支持,以便与云原生环境进行本地集成。

将分布式存储系统(如Ceph)转变为自我管理、自我扩展、自我修复的存储服务。

  • 自动化管理:rook自动化了存储管理员的任务,包括部署、引导、配置、调配、扩展、升级、迁移、灾难恢复、监控和资源管理。
  • 云原生集成:rook紧密整合了Kubernetes的特性,使Ceph存储系统能够以Kubernetes原生的方式进行部署和管理。
  • 支持多种存储类型:rook支持包括块存储、文件系统和对象存储在内的多种存储类型,以满足不同类型的存储需求。
1
2
3
4
5
6
7
8
9
10
11
1.搞个最新版的rook-v1.14.5
wget https://github.com/rook/rook/archive/refs/tags/v1.14.5.zip
unzip v1.14.5.zip
cd rook-1.14.5/

2.修改配置文件
vim deploy/examples/operator.yaml
修改镜像地址改成阿里云的

ROOK_ENABLE_DISCOVERY_DAEMON: "true"
# 自动发现rook的守护进程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
3.安装kook
cd deploy/examples/
kubectl apply -f crds.yaml -f common.yaml -f operator.yaml

kubectl get pods -n rook-ceph
NAME READY STATUS RESTARTS AGE
rook-ceph-operator-65b8cb57cc-bqd5r 1/1 Running 0 15m
rook-discover-9blzl 1/1 Running 0 8m19s
rook-discover-cqtfc 1/1 Running 0 8m19s
rook-discover-n9j54 1/1 Running 0 8m19s

4.创建ceph集群
修改/root/rook-1.14.5/deploy/examples/cluser.yaml文件
vim cluster.yaml
在storage.config字段下添加nodes信息

同时每个节点扩容50个G的sdb,裸盘,建议最少三个节点,ceph集群三个节点起步
kubectl apply -f cluster.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
5.安装ceph客户端工具
kubectl apply -f toolbox.yaml
kubectl get pods -n rook-ceph | grep tools
rook-ceph-tools-58c6857df4-zsgnc 1/1 Running 0 40s

进入客户端工具中可以使用ceph的命令,已经可以查看ceph集群了
kubectl exec -it -n rook-ceph rook-ceph-tools-58c6857df4-zsgnc /bin/bash

bash-4.4$ ceph status
cluster:
id: c47855be-d5ce-4747-813e-e713b2fb043e
health: HEALTH_WARN
mon b is low on available space

services:
mon: 3 daemons, quorum a,b,c (age 15m)
mgr: a(active, since 14m), standbys: b
osd: 3 osds: 3 up (since 15m), 3 in (since 15m)

data:
pools: 1 pools, 1 pgs
objects: 2 objects, 577 KiB
usage: 81 MiB used, 150 GiB / 150 GiB avail
pgs: 1 active+clean

ceph osd status
ID HOST USED AVAIL WR OPS WR DATA RD OPS RD DATA STATE
0 ws-k8s-node1 26.9M 49.9G 0 0 0 0 exists,up
1 ws-k8s-node3 26.9M 49.9G 0 0 0 0 exists,up
2 ws-k8s-node2 26.9M 49.9G 0 0 0 0 exists,up

6.安装ceph的dashboard

kubectl get ingress -n rook-ceph
NAME CLASS HOSTS ADDRESS PORTS AGE
rook-ceph-mgr-dashboard nginx rook-ceph.example.com 192.168.10.133 80, 443 78s

访问看看,我这报了502,可能是因为我刚改了rook-ceph-mgr-dashboard的svc,导致出问题
正常应该不会出

原文作者:王盛

原文链接:https://akemi.zj.cn/2024/06/04/Rook/

发表日期:June 4th 2024, 7:38:22 pm

更新日期:February 20th 2025, 6:37:27 pm

版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

CATALOG