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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能