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.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 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 来进行部署。ide

重启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 能够将其清除。

相关文章
相关标签/搜索