ROOK 01:使用 Helm 部署 Rook-Ceph

基于 Helm Chart 的方式部署 Rook。

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 来减少垃圾评论。了解你的评论数据如何被处理

滚动至顶部