文档章节

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

openthings
 openthings
发布于 2018/09/15 11:44
字数 1003
阅读 293
收藏 1

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 可以将其清除。

© 著作权归作者所有

openthings
粉丝 320
博文 1129
码字总数 675031
作品 1
东城
架构师
私信 提问
Rook 0.8 安装及Dashboard的问题和解决

Rook(https://rook.io)已经到了0.8版本,并且进入CNCF的孵化器。Rook是一个容器存储框架,已经率先支持Ceph(http://docs.ceph.org.cn/start/intro/)分布式文件系统。 这里介绍其安装过程,其...

openthings
2018/09/15
426
0
用好Kubernetes上的Ceph存储,你必须搞定Rook

全球含金量容器认证CKA培训北京站文末招生了 Rook是Kubernetes的一个开源云原生存储编排器,它最大的特点被形容为易于使用。这个项目的名称来自国际象棋,而掌握Rook比学会下国际象棋要容易。...

K8S技术社区
03/25
0
0
Kubernetes上建立WordPress博客

在Kubernetes上运行WordPress的好处是显而易见的。首先是安装非常简单(在已有集群的情况下),其次是可靠性更高,第三是规模可以伸缩。当然,可以在多个云之间更为容易地迁移也是非常重要的...

openthings
2018/09/15
506
0
CNCF 首个云原生存储项目 - ROOK

Rook将文件、数据块和对象存储系统引入到Kubernetes集群,与其他正在使用存储的应用程序和服务一起无缝运行。通过这种方式,云原生集群可以在公有云和本地部署中自给自足并且具备可移植性。该...

匿名
2018/01/31
1K
1
Rook:基于Ceph的Kubernetes存储解决方案

Rook是一款运行在Kubernetes集群中的存储服务编排工具,在0.8版本中,Rook已经变成Beta发行版,如果还没有尝试过Rook,可以现在尝鲜。 Rook是什么,为什么很重要?Ceph运行在Kubernetes集群中...

店家小二
2018/12/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Giraph源码分析(八)—— 统计每个SuperStep中参与计算的顶点数目

作者|白松 目的:科研中,需要分析在每次迭代过程中参与计算的顶点数目,来进一步优化系统。比如,在SSSP的compute()方法最后一行,都会把当前顶点voteToHalt,即变为InActive状态。所以每次...

数澜科技
今天
2
0
Xss过滤器(Java)

问题 最近旧的系统,遇到Xss安全问题。这个系统采用用的是spring mvc的maven工程。 解决 maven依赖配置 <properties><easapi.version>2.2.0.0</easapi.version></properties><dependenci......

亚林瓜子
今天
7
0
Navicat 快捷键

操作 结果 ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shift +/ 解除注释 ctrl+r 运行查询窗口的sql语句 ctrl+shift+r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl+l 删除一行 ...

低至一折起
今天
8
0
Set 和 Map

Set 1:基本概念 类数组对象, 内部元素唯一 let set = new Set([1, 2, 3, 2, 1]); console.log(set); // Set(3){ 1, 2, 3 } [...set]; // [1, 2, 3] 接收数组或迭代器对象 ...

凌兮洛
今天
3
0
PyTorch入门笔记一

张量 引入pytorch,生成一个随机的5x3张量 >>> from __future__ import print_function>>> import torch>>> x = torch.rand(5, 3)>>> print(x)tensor([[0.5555, 0.7301, 0.5655],......

仪山湖
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部