ROOK 01:使用 Helm 部署 Rook-Ceph

Rook 基本介绍

Rook 是一个开源云原生存储编排器,为 Ceph 存储提供平台、框架和支持,以便与原生环境集成。Ceph 是一个分布式存储系统,提供文件、块和对象存储。

Rook 可以自动化对 Ceph 进行部署和管理,基于 Ceph 来提供自我管理,自我修复和自我扩展的存储服务。Rook Operator 通过构建 Kubernetes 资源来部署、配置、供应、扩展、升级和监控 Ceph 来实现。

先决条件

在部署之前需要满足基本的环境条件。

Rook

Rook 可以安装在现有的 Kubernetes 集群中,但需要满足最基本的条件。
版本在 v1.23 至 v1.29 是得到支持的(当前 Kubernetes 的版本为 v1.29),CPU 架构目前仅支持 amd64/x86-64 和 arm64 。

Ceph 先决条件

要部署 Ceph 集群,对于本地存储类型需要满足以下一种或多种:

  • Raw 设备,没有分区和文件系统
  • Raw 分区,没有文件系统
  • LVM ,没有文件系统
  • 来自存储类中可用的基于块模式的 PV

如果使用 LVM ,要确保存储节点安装了 lvm2 包。

Kernel

Ceph 需要内核支持 rbd 内核模块,对于常见的发行版本都是支持的。

如果需要创建访问模式为 RWX 基于 CephFS 的文件系统,推荐内核最低版本为 4.17 。

其它条件可参考Rook Ceph Documentation Prerequisites

部署 Rook

部署 Rook 的方式有很多种,这里通过使用 Helm Chart 的方式安装 Rook 来创建、配置和管理 Ceph 集群在 Kubernetes 上。

使用 Helm 部署需要满足:

  • Kubernetes 1.22+
  • Helm 3.x

当 helm 部署好后,可以通过以下命令部署 Rook:

helm repo add rook-release https://charts.rook.io/release
helm install --create-namespace --namespace rook-ceph rook-ceph rook-release/rook-ceph -f values.yaml

有两个 channels 可以选择 masterrelease ,上面选择的是 release
部署时所需的 values.yaml 文件可以参考项目提供的values.yaml

克隆 rook-ceph 仓库:

git clone https://github.com/rook/rook.git

values.yaml 中的配置可参考configuration

如果集群是一个三节点的集群(1Master + 2Worker)的话,那么 Master 也需要作为工作负载节点,可以将污点去掉:

kubectl taint node master01.example.com node-role.kubernetes.io/master:PreferNoSchedule-

默认配置中在国内可能遇到的问题就是无法下载所需 image 导致 Pod 无法启动,可以参考博客中的关于为 CRI-O 设置代理的文章。

创建 Cluster

使用项目中的 deploy/examples/cluster.yaml 文件创建 ceph cluster:

kubectl -n rook-ceph apply -f cluster.yaml

验证

查看 helm 部署的状态:

查看 rook-ceph 项目中的 Pod 的状态:

如果需要使用 ceph 命令进行验证的话,需要安装 toolbox,使用以下方式进行安装:

kubectl apply -f https://raw.githubusercontent.com/rook/rook/master/deploy/examples/toolbox.yaml

安装之后可以进入到 Pod 中执行 ceph 相关命令:

[vagrant@master01 ~]$ kubectl exec -it rook-ceph-tools-66b77b8df5-x97q4 -n rook-ceph -- ceph -s
  cluster:
    id:     f8bdb7b9-12c8-4814-b4a2-6122366ddd1a
    health: HEALTH_OK

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

  data:
    pools:   1 pools, 1 pgs
    objects: 2 objects, 449 KiB
    usage:   76 MiB used, 60 GiB / 60 GiB avail
    pgs:     1 active+clean

可以看到此时的 Ceph 集群是正常且可提供存储服务的。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

滚动至顶部