Rook-Ceph 分布式存储系统快速部署

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: Rook-Ceph 分布式存储系统快速部署 This guide will walk you through the basic setup of a Ceph cluster and enable you to consume block, object, and file storage from other pods running in your cluster.

Rook-Ceph 分布式存储系统快速 部署

This guide will walk you through the basic setup of a Ceph cluster and enable you to consume block, object, and file storage from other pods running in your cluster.

版本要求

Rook支持的Kubernetes 要求版本高于 v1.7。

预先检查

确保 Kubernetes 集群可以用于 Rook, 跟着这个检查 follow these instructions.

如果使用 dataDirHostPath 来持久化 rook 到 kubernetes 的宿主机,确保 host 至少有 5GB 以上空间可用,而且是指定的目录下。

开始

如果幸运的话,Rook cluster 可以通过下面的kubectl commands来创建。更多细节,参考 deploy the Rook operator

cd cluster/examples/kubernetes/ceph
kubectl create -f operator.yaml
kubectl create -f cluster.yaml

集群运行后,就可以创建 block, object, or file 存储,从而可以被集群中其它的应用所使用。

部署Rook Operator

这是部署Rook system components,的第一步,包括一个Rook agent运行于每一个节点上,作为Rook operator pod,缺省部署在rook-ceph-system命名空间中。

cd cluster/examples/kubernetes/ceph
kubectl create -f operator.yaml

# verify the rook-ceph-operator, rook-ceph-agent, and rook-discover pods are in the `Running` state before proceeding
kubectl -n rook-ceph-system get pod

该operator可以通过 Rook Helm Chart 来进行部署。

重启Kubelet,(K8S 1.7.x only)

对于Kubernetes 1.8之前的版本, Kubelet 进程在所有的节点上都要进行重启,在部署Rook operator 和 Rook agents之后。作为初始化 setup的一部分, Rook agents 部署和配置了Flexvolume plugin ,以此与 Kubernetes’ volume controller框架整合。在 Kubernetes v1.8+, 其 dynamic Flexvolume plugin discovery 将会发现和初始化Rook的plugin, 但在 Kubernetes的老版本上,手工重启Kubelet被要求。

创建Rook Cluster

现在Rook operator, agent,和 discover pods已经运行,我们可以创建 Rook cluster。为了重启之后还能复活集群,请确定设置了dataDirHostPath 属性。更多的设置,参考 configuring the cluster.

保存下面的参数为 cluster.yaml:

apiVersion: v1 kind: Namespace metadata:
 name: rook-ceph
---
apiVersion: ceph.rook.io/v1beta1 kind: Cluster metadata:
 name: rook-ceph
 namespace: rook-ceph
spec:
 dataDirHostPath: /var/lib/rook
 dashboard:
 enabled: true
 storage:
 useAllNodes: true
 useAllDevices: false
 config:
 databaseSizeMB: "1024"
 journalSizeMB: "1024" 

创建cluster:

kubectl create -f cluster.yaml

使用 kubectl列出rook命名空间下的 pods 。其中,osd pods 的数量依赖于集群中节点的数量、配置的设备和目录的数量。

$ kubectl -n rook-ceph get pod
NAME READY STATUS RESTARTS AGE
rook-ceph-mgr-a-75cc4ccbf4-t8qtx 1/1 Running 0 24m
rook-ceph-mon0-72vx7 1/1 Running 0 25m
rook-ceph-mon1-rrpm6 1/1 Running 0 24m
rook-ceph-mon2-zff9r 1/1 Running 0 24m
rook-ceph-osd-id-0-5fd8cb9747-dvlsb 1/1 Running 0 23m
rook-ceph-osd-id-1-84dc695b48-r5mhf 1/1 Running 0 23m
rook-ceph-osd-id-2-558878cd84-cnp67 1/1 Running 0 23m
rook-ceph-osd-prepare-minikube-wq4f5 0/1 Completed 0 24m

Storage

了解Rook提供的三种不同存储类型,查看指南:

  • Block: 创建块存储供pod使用,相当于创建一块硬盘,然后可以被pod挂载到操作系统。
  • Object: 创建object store可以供 Kubernetes cluster 内部或外部使用,是一种类似于Amazon S3的网络存储服务。
  • Shared File System: 创建一个文件系统,可以在多个 pods 间共享。

Ceph Dashboard,面板

Ceph 有一个dashboard服务,依赖于mgr的指标收集。可以查看集群的状态,参见 dashboard guide 。也可以通过安装集成的Prometheus和Grafana来查看运行状态。

Tools,客户端工具

我们创建了一个toolbox container,里面包含全功能的Ceph clients命令行工具,可以用于调试和诊断Rook集群的状态和错误。 查看 toolbox readme 获得安装和用法的信息。同时,查看 advanced configuration 文档查看维护和调优的例子。

Monitoring,状态监测

每一个 Rook cluster 都有内置的 metrics collectors/exporters用于 Prometheus 的监测。了解如何设置 monitoring,请查看 monitoring guide

结束

测试完集群后,查看 these instructions 可以将其清除。

本文转自开源中国-Rook-Ceph 分布式存储系统快速部署

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
14天前
|
存储 运维 负载均衡
构建高可用性GraphRAG系统:分布式部署与容错机制
【10月更文挑战第28天】作为一名数据科学家和系统架构师,我在构建和维护大规模分布式系统方面有着丰富的经验。最近,我负责了一个基于GraphRAG(Graph Retrieval-Augmented Generation)模型的项目,该模型用于构建一个高可用性的问答系统。在这个过程中,我深刻体会到分布式部署和容错机制的重要性。本文将详细介绍如何在生产环境中构建一个高可用性的GraphRAG系统,包括分布式部署方案、负载均衡、故障检测与恢复机制等方面的内容。
67 4
构建高可用性GraphRAG系统:分布式部署与容错机制
|
1月前
|
消息中间件 中间件 数据库
NServiceBus:打造企业级服务总线的利器——深度解析这一面向消息中间件如何革新分布式应用开发与提升系统可靠性
【10月更文挑战第9天】NServiceBus 是一个面向消息的中间件,专为构建分布式应用程序设计,特别适用于企业级服务总线(ESB)。它通过消息队列实现服务间的解耦,提高系统的可扩展性和容错性。在 .NET 生态中,NServiceBus 提供了强大的功能,支持多种传输方式如 RabbitMQ 和 Azure Service Bus。通过异步消息传递模式,各组件可以独立运作,即使某部分出现故障也不会影响整体系统。 示例代码展示了如何使用 NServiceBus 发送和接收消息,简化了系统的设计和维护。
46 3
|
1月前
|
消息中间件 存储 监控
消息队列系统中的确认机制在分布式系统中如何实现
消息队列系统中的确认机制在分布式系统中如何实现
|
1月前
|
消息中间件 存储 监控
【10月更文挑战第2天】消息队列系统中的确认机制在分布式系统中如何实现
【10月更文挑战第2天】消息队列系统中的确认机制在分布式系统中如何实现
|
1月前
|
存储 开发框架 .NET
C#语言如何搭建分布式文件存储系统
C#语言如何搭建分布式文件存储系统
67 2
|
29天前
|
消息中间件 存储 监控
消息队列系统中的确认机制在分布式系统中如何实现?
消息队列系统中的确认机制在分布式系统中如何实现?
|
2月前
|
存储 块存储
ceph分布式存储系统常见术语篇
关于Ceph分布式存储系统的常见术语解释和概述。
106 1
ceph分布式存储系统常见术语篇
|
1月前
|
存储 分布式计算 监控
C# 创建一个分布式文件存储系统需要怎么设计??
C# 创建一个分布式文件存储系统需要怎么设计??
33 0
|
2月前
|
存储
cephFS高可用分布式文件系统部署指南
关于如何部署高可用的cephFS分布式文件系统,包括集群的搭建、验证高可用性以及实现两主一从架构的详细指南。
76 9
|
3月前
|
消息中间件 存储 监控
消息队列系统中的确认机制在分布式系统中如何实现?
消息队列系统中的确认机制在分布式系统中如何实现?

热门文章

最新文章