k8s1.20集群安装rook-ceph分布式存储方案

一,什么是rook?

官网地址:Ceph.io — Home

Rook 是一个开源云原生存储编排器,为各种存储解决方案提供平台、框架和支持,以便与云原生环境原生集成。

Rook 将存储软件转变为自我管理、自我扩展和自我修复的存储服务。它通过自动化部署、引导、配置、预配、缩放、升级、迁移、灾难恢复、监视和资源管理来实现这一点。Rook 使用底层云原生容器管理、调度和编排平台提供的设施来履行其职责。

Rook 利用扩展点深度集成到云原生环境中,并为调度、生命周期管理、资源管理、安全性、监控和用户体验提供无缝体验。

二,先决条件

确保您有一个准备好的 Kubernetes 集群,此次我使用的是k8s1.20.6版本集群

要配置 Ceph 存储集群,至少需要以下本地存储选项之一:

  • 原始设备(无分区或格式化文件系统)
  • 原始分区(无格式化文件系统)
  • 处于模式的存储类中可用的持久卷block

可以使用以下命令确认您的分区或设备是否格式化为文件系统。

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

如果该字段不为空,则相应设备顶部有一个文件系统。在这种情况下,您可以将 vdb 用于 Ceph,但不能使用 vda 及其分区

三,安装版本

1,k8s版本:1.20.6

k8s1.20集群安装rook-ceph分布式存储方案_第1张图片

安装ceph至少需要三个节点,没有那么多工作节点的可以将master节点污点去除安装ceph。

 2,rook版本:1.6.3

下载地址:https://codeload.github.com/rook/rook/tar.gz/refs/tags/v1.6.3

三,安装rook

1,镜像下载

国内无法下载k8s.gcr.io仓库的镜像,所以提前拉取镜像修改tag,在每个要安装ceph的节点上执行以下命令:

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/csi-provisioner:v2.0.4
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/csi-provisioner:v2.0.4 k8s.gcr.io/sig-storage/csi-provisioner:v2.0.4
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/csi-attacher:v3.0.2
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/csi-attacher:v3.0.2 k8s.gcr.io/sig-storage/csi-attacher:v3.0.2
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/csi-snapshotter:v4.0.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/csi-snapshotter:v4.0.0 k8s.gcr.io/sig-storage/csi-snapshotter:v4.0.0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/csi-resizer:v1.0.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/csi-resizer:v1.0.1 k8s.gcr.io/sig-storage/csi-resizer:v1.0.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/csi-node-driver-registrar:v2.0.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/csi-node-driver-registrar:v2.0.1 k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.0.1

2,部署 Rook 操作员

tar -zxvf rook-1.6.3.tar.gz
cd rook-1.6.3/cluster/examples/kubernetes/ceph
kubectl create -f crds.yaml -f common.yaml -f operator.yaml
kubectl -n rook-ceph get pod

 注意:此次应等待所有Pod启动后再进行下一步,不然会报错

3,创建 Rook Ceph 集群

kubectl create -f cluster.yaml
kubectl -n rook-ceph get pod

k8s1.20集群安装rook-ceph分布式存储方案_第2张图片

 遇到以上情况不要慌,先describe查看Pod详细信息

k8s1.20集群安装rook-ceph分布式存储方案_第3张图片

 说明:我这里是没有提前拉取镜像导致的,拉取镜像打tag就好了,遇到问题不要怕,先看报错信息。

k8s1.20集群安装rook-ceph分布式存储方案_第4张图片

到这里咱们的rook-ceph集群就安装完成了。

要验证群集是否处于正常状态,创建Rook工具箱并运行命令:

kubectl apply -f toolbox.yaml
kubectl get pod -n rook-ceph
kubectl exec -it -n rook-ceph rook-ceph-tools-fc5f9586c-rxpbd -- /bin/bash

k8s1.20集群安装rook-ceph分布式存储方案_第5张图片

 集群运行正常,上方的报警是node节点时间不同步导致的,后续已处理。

4,仪表盘安装

官网地址:Ceph 文档 (rook.io)

kubectl create -f dashboard-external-https.yaml
kubectl -n rook-ceph get service
NAME                                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
rook-ceph-mgr                           ClusterIP   10.108.111.192           9283/TCP         4h
rook-ceph-mgr-dashboard                 ClusterIP   10.110.113.240           8443/TCP         4h
rook-ceph-mgr-dashboard-external-https  NodePort    10.101.209.6             8443:31176/TCP   4h

现在,您可以在浏览器中输入URL,将会出现仪表板。

你可能感兴趣的:(Ceph,kubernetes,ceph,分布式)