rook-ceph-mon-a-5d7fcfb6ff-2wq9l 1/1 Running 0 81m rook-ceph-mon-b-7cfcd567d8-lkqff...rook-ceph-osd-0-56bd7545bd-5k9xk 1/1 Running 0 63m rook-ceph-osd-1-77f56cd549-7rm4l...rook-ceph-osd-3-6f8b78c647-8xjzv 1/1 Running 0 63m 参数说明: apiVersion: ceph.rook.io/v1...kind: CephCluster metadata: name: rook-ceph namespace: rook-ceph spec: cephVersion: # For...rook-ceph -n rook-ceph 把useAllNodes设置成false,然后在nodes列表里增加节点名即可,保存退出后会自动增加ceph节点 nodes: - config: null
Ceph 就是一个分布式存储系统,近年来其影响主键扩大。Rook 是一个编排器,能够支持包括 Ceph 在内的多种存储方案。Rook 简化了 Ceph 在 Kubernetes 集群中的部署过程。...Ceph 客户端使用集群地图来获知需要交互的 OSD,从而和特定 OSD 建立联系。 Rook 是什么 Rook 是一个可以提供 Ceph 集群管理能力的 Operator。...-name rook --namespace rook-ceph-system rook-stable/rook-ceph $ kubectl get po -n rook-ceph-system -...只重装 Rook 删除 rook-ceph 以及 rook-ceph-system 命名空间会造成很大麻烦。...clusters.ceph.rook.io rook-ceph -p ‘{“metadata”:{“finalizers”: []}}’ –type=merge kubectl -n rook-ceph
Rook 目前已经是 Ceph 官方文档推荐的 Kubernetes 部署 Ceph 集群的方式了。本文主要记录一下部署的过程和遇到的一些问题。.... # For example, to create the rook-ceph cluster: kubectl create -f common.yaml kubectl create -f operator.yaml...common.yaml 包含了 Rook 里的关于 Ceph 的一些 CRD 定义 operator.yaml 自然就是 Rook 的 Operator 的部署,可以看到官方是以 Deployment...但我们还是要自己把真正的 Ceph 集群相关的 CRD 找出来,通过 grep 命令操作一下 common.yaml 文件可以得到下面的结果。...里有很多种 CRD,主要包括 CephCluster 应该是作为全局的,另外如 CephFS, 对象存储, RBD 这些 Ceph 组件都会以 CRD 的形式存在。
不过目前 Rook 已经很好地提供了对 Ceph 的支持,本文简单为大家介绍如何使用 Rook 来快速搭建 Ceph 集群。...是否处于“Running”状态: $ kubectl get pod -n rook-ceph 创建 Rook Ceph 集群 现在 Rook Operator 处于 Running 状态,接下来我们就可以创建...Rook 工具箱 要验证集群是否处于正常状态,我们可以使用 Rook 工具箱(https://rook.io/docs/rook/v1.1/ceph-toolbox.html) 来运行 ceph status...: name: rook-ceph-tools namespace: rook-ceph labels: app: rook-ceph-tools spec: selector:...namespace: rook-ceph labels: app: rook-ceph-mgr rook_cluster: rook-ceph spec: ports:
-n rook-ceph-system NAME READY STATUS RESTARTS AGE rook-ceph-agent...rook-ceph-mon-a-5d7fcfb6ff-2wq9l 1/1 Running 0 81m rook-ceph-mon-b-7cfcd567d8-lkqff...79m rook-ceph-osd-0-56bd7545bd-5k9xk 1/1 Running 0 63m rook-ceph-osd-1-77f56cd549-...63m rook-ceph-osd-3-6f8b78c647-8xjzv 1/1 Running 0 63m 参数说明: apiVersion: ceph.rook.io.../v1 kind: CephCluster metadata: name: rook-ceph namespace: rook-ceph spec: cephVersion:
不过目前 Rook 已经很好地提供了对 Ceph 的支持,本文简单为大家介绍如何使用 Rook 来快速搭建 Ceph 集群。...是否处于“Running”状态: $ kubectl get pod -n rook-ceph 创建 Rook Ceph 集群 现在 Rook Operator 处于 Running 状态,接下来我们就可以创建...Rook 工具箱 要验证集群是否处于正常状态,我们可以使用 Rook 工具箱(https://rook.io/docs/rook/v1.1/ceph-toolbox.html) 来运行 ceph status...: name: rook-ceph-toolsnamespace: rook-ceph labels: app: rook-ceph-toolsspec: selector: matchLabels...namespace: rook-ceph labels: app: rook-ceph-mgr rook_cluster: rook-cephspec: ports: - name
作为CERN openlab的暑期学生,我在IT存储组工作了9周,我的暑期项目是“评估使用Rook部署Ceph”。我之前在Ceph实习的时候有过一段很棒的经历,所以这次我也非常兴奋。...由于最近的Rook Ceph集成处于Beta阶段,因此有必要对其进行评估,以确定是否可以使用该工具部署未来的Ceph集群。...确切地说,希望利用Rook改进以下领域: 减少新集群的部署时间 简化升级 更灵活的横向扩展 更好的容错 减少对专业Ceph操作员的依赖 我的工作是在虚拟和物理环境中使用Rook部署Ceph,看看是否实现了上述改进...Rook建立在Kubernetes之上,因此节点可靠性和改进的故障容忍度成为一等特性。带有Rook后端的编排器CLI可以轻松操作部署的集群,特别是对于那些已经熟悉Ceph CLI的人来说。...然而,Ceph的升级还没有自动化,Rook和Ceph版本之间存在耦合,这使得整体部署的灵活性降低。这些特性计划在即将发布的Rook v0.9提供。
and Configuration | OpenShift Enterprise 3.1 该测试在外部集群及rook集群中都已经测试:通过 k8s集群 [root@kmaster ceph]# kubectl...rook-ceph-mon-b-65d59f4667-hvdbt 1/1 Running 0 4h57m rook-ceph-mon-c...4h56m rook-ceph-osd-prepare-kmaster-4rh6n 0/1 Completed 0 32m rook-ceph-osd-prepare-knode01...0 104m [root@kmaster ceph]# 创建pool [root@rook-ceph-tools-7467d8bf8-x7scq /]# ceph osd...== [root@rook-ceph-tools-7467d8bf8-x7scq /]# 创建secret、pvc、pc ceph-pv.yaml apiVersion: v1 kind: Secret
资源,给 Rook 创建的 Pod 使用 deployment:rook-ceph-operator,部署 rook ceph 相关的组件 部署 rook-ceph-operator 过程中,会触发以.../rook-ceph-osd created serviceaccount/rook-ceph-mgr created role.rbac.authorization.k8s.io/rook-ceph-osd...@k8s-master ceph]$ kubectl -n rook-ceph get pods -o wide | grep ceph-tools rook-ceph-tools-76c7d559b6...]$ 然后可以登陆该 pod 后,执行 Ceph CLI 命令: [centos@k8s-master ceph]$ kubectl -n rook-ceph exec -it rook-ceph-tools...在 Ceph 集群端检查: [centos@k8s-master ceph]$ kubectl -n rook-ceph exec -it rook-ceph-tools-76c7d559b6-8w7bk
注意:如上创建了相应的基础服务(如 serviceaccounts),同时 rook-ceph-operator 会在每个节点创建 rook-ceph-agent 和 rook-discover。...# mon: rook-ceph-mon-priority-class # osd: rook-ceph-osd-priority-class # mgr: rook-ceph-mgr-priority-class...7、测试 Rook $ kubectl -n rook-ceph exec -it $(kubectl -n rook-ceph get pod -l "app=rook-ceph-tools" -o...namespace: rook-ceph labels: app: rook-ceph-mgr rook_cluster: rook-ceph spec: ports: - name: dashboard...Rook 在运行 Rook Ceph 集群的名称空间中创建一个默认用户,admin 并生成一个称为的秘密rook-ceph-dashboard-admin-password。
当我在Seagate担任云架构师时,我已经对Ceph进行了性能和规模测试,并且在过去的一年里玩过Rook,所以我决定安装Rook+Ceph,并将其用于Kubernetes集群的数据存储。...在Ceph集群上,您还可以找到Ceph MON(监控)守护程序,它们确保Ceph集群保持高可用性。 Rook充当Ceph在Kubernetes的业务流程层,将OSD和MON流程部署为POD副本集。...安装Rook+Ceph 安装Rook+Ceph非常简单。...Rook将POD部署在两个命名空间中,即rook-ceph-system和rook-ceph。...rook-ceph-osd-3-577466c968-j8gjr 1/1 Running 0 2d20h rook-ceph-osd-4-6856c5c6c9-
外部集群的概念是指,通过部署 Rook,来管理部署在其他集群或者物理机的 Ceph 集群,也就是 Rook 里 External Cluster 的概念。...这个要看 rook operator 里 ceph 命令的版本。...https://docs.ceph.com/docs/master/rados/configuration/msgr2/ # cat rook-ceph-external.config [global.../rook-ceph-external/client.admin.keyring # cat ceph.conf [global] fsid = bcc8be6a-4497...https://github.com/rook/rook/blob/2052d5e657b748697a04e936409611daf2fbc909/pkg/operator/ceph/version/
创建完毕后,不会创建 rook-ceph-mgr、rook-ceph-mon、rook-ceph-osd 等资源。...说明一下,这里先创建了 rook-ceph-operator,然后在由它在每个节点创建 rook-ceph-agent 和 rook-discover。.../rook-ceph-mgr-cluster created cephcluster.ceph.rook.io/rook-ceph created $ kubectl get cephcluster -...CLI 命令的,我们来实验一下: $ kubectl -n rook-ceph get pod | grep rook-ceph-mon rook-ceph-mon-a-56bfd58fdd-sql6w...Pod,执行 Ceph 命令 $ kubectl -n rook-ceph exec -it rook-ceph-mon-a-56bfd58fdd-sql6w bash [root@rook-ceph-mon-a
),同时rook-ceph-operator会在每个节点创建 rook-ceph-agent 和 rook-discover。...5 namespace: rook-ceph 6 labels: 7 app: rook-ceph-mgr 8 rook_cluster: rook-ceph.../var/lib/rook/rook-ceph/rook-ceph.config #也可在任何node上查看 [root@k8smaster01 ceph]# kubectl -n rook-ceph...-n rook-ceph delete pod rook-ceph-mgr-a-5699bb7984-kpxgp [root@k8smaster01 ceph]# kubectl -n rook-ceph...rook-ceph-mgr-a-d58847d5-dj62p [root@k8smaster01 ceph]# kubectl -n rook-ceph delete pod rook-ceph-mon-b
创建完毕后,不会创建 rook-ceph-mgr、rook-ceph-mon、rook-ceph-osd 等资源。...5m35s 说明一下,这里先创建了 rook-ceph-operator,然后在由它在每个节点创建 rook-ceph-agent 和 rook-discover。.../rook-ceph-mgr-cluster created cephcluster.ceph.rook.io/rook-ceph created $ kubectl get cephcluster...CLI 命令的,我们来实验一下: $ kubectl -n rook-ceph get pod | grep rook-ceph-mon rook-ceph-mon-a-56bfd58fdd-sql6w...登录任意一个 Pod,执行 Ceph 命令 $ kubectl -n rook-ceph exec -it rook-ceph-mon-a-56bfd58fdd-sql6w bash [root@rook-ceph-mon-a
-8kmgb -- bash ceph mgr module enable rook ceph orch set backend rook 1.3、配置ceph控制台ingress # 配置ceph控制台...# 获取访问密码 # 访问地址:https://ceph.testsoft.com kubectl get secrets -n rook-ceph rook-ceph-dashboard-password...get pod -l app=rook-ceph-rgw kubectl -n rook-ceph get svc -l app=rook-ceph-rgw # 创建storageclasses...-n rook-ceph rook-ceph # 从ceph集群清除osd # 编辑移除yaml 修改OSD-IDs vim osd-purge.yaml # 执行删除job kubectl...rook-ceph-osd- # operator副本数设置为1 kubectl -n rook-ceph scale deployment rook-ceph-operator --replicas
47s [root@kmaster ceph]# Rook Toolbox https://rook.io/docs/rook/v1.6/ceph-toolbox.html cd rook/cluster...-it rook-ceph-tools-7467d8bf8-x7scq /bin/bash -n rook-ceph -- ceph osd tree kubectl exec -it rook-ceph-tools...-7467d8bf8-x7scq /bin/bash -n rook-ceph -- ceph osd pool ls [root@kmaster ceph]# kubectl exec -it rook-ceph-tools.../bash -n rook-ceph -- ceph osd pool ls device_health_metrics [root@kmaster ceph]# 创建pool [root@rook-ceph-tools...@rook-ceph-tools-7467d8bf8-x7scq /]# [root@kmaster kubernetes]# k exec -it -n rook-ceph rook-ceph-tools
/rook-ceph-osd createdserviceaccount/rook-ceph-mgr createdserviceaccount/rook-ceph-cmd-reporter createdrole.rbac.authorization.k8s.io...47s[root@kmaster ceph]# Rook Toolboxhttps://rook.io/docs/rook/v1.6/ceph-toolbox.htmlcd rook/cluster/examples...-it rook-ceph-tools-7467d8bf8-x7scq /bin/bash -n rook-ceph -- ceph osd treekubectl exec -it rook-ceph-tools...-7467d8bf8-x7scq /bin/bash -n rook-ceph -- ceph osd pool ls[root@kmaster ceph]# kubectl exec -it rook-ceph-tools...-n rook-ceph -- ceph osd pool lsdevice_health_metrics[root@kmaster ceph]# 创建pool[root@rook-ceph-tools
rollout status deploy/rook-ceph-tools6.2 常用命令登录 Toolboxkubectl -n rook-ceph exec -it deploy/rook-ceph-tools...-- bash验证 Ceph 集群状态$ kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bashbash-5.1$ ceph -s...rados df# 查看 PG 状态ceph pg stat删除 toolbox(可选)kubectl -n rook-ceph delete deploy/rook-ceph-tools7....toolbox 中查看 Ceph 集群状态# 登录kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash# 查看集群bash-5.1$...namespace: rook-ceph labels: app: rook-ceph-mgr rook_cluster: rook-cephspec: ports: - name
Rook 本身很复杂,包含很多 Controller,而 Rook 的复杂不仅体现在这里,并且 Ceph 也非常复杂,在部署和运维上有很多需要注意的地方。...本文主要剖析 Rook 启动 osd 的流程,如果有部署过 Ceph 的经验,应该知道加入 osd 大概有两个步骤,1是先 prepare,也就是检查节点上的一些设备是否符合安装 osd,2是激活,也就是...rook-ceph-osd-13-778bdd8db8-qn6t8 1/1 Running 0 20h rook-ceph-osd...rook-ceph-osd-29-56dd458d4c-76hm6 1/1 Running 0 20h rook-ceph-osd...0 20h Rook 代码结构是比较清晰的,关于 osd 的代码可以从 pkg/operator/ceph/cluster/osd 找到。
领取专属 10元无门槛券
手把手带您无忧上云