Rook-Ceph 分布式存储系统快速部署
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来查看运行状态。
- Dashboard目前(0.8)还会遇到一些问题,参见 Rook 0.8 安装及Dashboard的问题和解决
Tools,客户端工具
我们创建了一个toolbox container,里面包含全功能的Ceph clients命令行工具,可以用于调试和诊断Rook集群的状态和错误。 查看 toolbox readme 获得安装和用法的信息。同时,查看 advanced configuration 文档查看维护和调优的例子。
Monitoring,状态监测
每一个 Rook cluster 都有内置的 metrics collectors/exporters用于 Prometheus 的监测。了解如何设置 monitoring,请查看 monitoring guide。
结束
测试完集群后,查看 these instructions 可以将其清除。
本文转自开源中国-Rook-Ceph 分布式存储系统快速部署
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
kubernetes(k8s)以及涉及组件简单介绍
什么是kubernetes? Kubernetes是一个全新的基于容器技术的分布式架构领先方案。是Google内部集群管理系统Borg的一个开源版本。直到2015年4月,随着论文发布,才被众人熟知。Kubernetes是一个开放的开发平台。不局限于任何一种语言,没有限定任何编程接口。是一个完备的分布式系统支撑平台。它构建在docker之上,提供应用部署、维护、扩展机制等功能,利用Kubernetes能方便地管理跨机器运行 容器化的应用。Kubernetes在大概两三周前,正式发布1.5版本。 主要功能体现在如下:–使用Docker对应用程序包装、实例化–以集群的方式运行、管理跨机器的容器–解决Docker跨机器容器之间的通讯问题–Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态基本概念: Kubernetes中的大部分概念Node、Pod、Replication Controller、Service等都可以看作一种“资源对象”,几乎所有的资源对象都可以通过kubectl工具(API调用)执行增、删、改、查等操作并将其保存在etcd中持久化存储。从这个角度来看,ku...
-
下一篇
Kubernetes中的Pod无法访问外网-Ubuntu16.04 LTS
Kubernetes中的Pod无法访问外网-Ubuntu16.04 LTS 安装完Kubernetes后,在Pod中使用wget无法访问外网URL地址,但是使用IP地址是可以 访问,应该是 Pod内无法解析DNS导致的。 1、解决方法 尝试了将DNS换为CoreDNS,问题仍然存在。经过多次测试,发现下面的方法是可行的: 编辑主机的/etc/resolv.conf文件: # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN #nameserver 127.0.1.1 nameserver 192.168.199.1 nameserver 8.8.8.8 nameserver 9.9.9.9 search lan 如果/etc/resolv.conf为链接,则需要修改/etc/resolvconf/resolv.conf.d/base或head文件,然...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- 面试大杂烩
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Crontab安装和使用
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker使用Oracle官方镜像安装(12C,18C,19C)

微信收款码
支付宝收款码