天天看點

Rook-Ceph 分布式存儲系統快速部署Rook-Ceph 分布式存儲系統快速 部署StorageCeph Dashboard,面闆Tools,用戶端工具Monitoring,狀态監測結束

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)還會遇到一些問題,參見

Tools,用戶端工具

我們建立了一個toolbox container,裡面包含全功能的Ceph clients指令行工具,可以用于調試和診斷Rook叢集的狀态和錯誤。 檢視

toolbox readme

獲得安裝和用法的資訊。同時,檢視

advanced configuration

文檔檢視維護和調優的例子。

Monitoring,狀态監測

每一個 Rook cluster 都有内置的 metrics collectors/exporters用于

Prometheus

的監測。了解如何設定 monitoring,請檢視

monitoring guide

結束

測試完叢集後,檢視

these instructions

可以将其清除。

本文轉自開源中國-

Rook-Ceph 分布式存儲系統快速部署