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.html
Rook支持的Kubernetes 要求版本高于 v1.7。git
确保 Kubernetes 集群能够用于 Rook
, 跟着这个检查 follow these instructions.github
若是使用 dataDirHostPath
来持久化 rook 到 kubernetes 的宿主机,确保 host 至少有 5GB 以上空间可用,并且是指定的目录下。api
若是幸运的话,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 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 来进行部署。ide
对于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 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
了解Rook提供的三种不一样存储类型,查看指南:
Ceph 有一个dashboard服务,依赖于mgr的指标收集。能够查看集群的状态,参见 dashboard guide 。也能够经过安装集成的Prometheus和Grafana来查看运行状态。
咱们建立了一个toolbox container,里面包含全功能的Ceph clients命令行工具,能够用于调试和诊断Rook集群的状态和错误。 查看 toolbox readme 得到安装和用法的信息。同时,查看 advanced configuration 文档查看维护和调优的例子。
每个 Rook cluster 都有内置的 metrics collectors/exporters用于 Prometheus 的监测。了解如何设置 monitoring,请查看 monitoring guide。
测试完集群后,查看 these instructions 能够将其清除。