1/1Running0116mrook-discover-ncjts 1/1Running0139m OSD Pod 的数量将取决于集群中的节点数量以及配置的设备和目录的数量...如果用上面我们的资源清单,则每个节点将创建一个 OSD。rook-ceph-agent 和 rook-discover 是否存在也是依赖于我们的配置的。...例如: ceph statusceph osd statusceph dfrados df 比如现在我们要查看集群的状态,需要满足下面的条件才认为是健康的: 所有 mons 应该达到法定数量 mgr 应该是激活状态...,包括总体运行状态,mgr、osd 和其他 Ceph 进程的状态,查看池和 PG 状态,以及显示守护进程的日志等等。...要了解如何为 Rook 群集设置监控,可以按照监控指南(https://rook.io/docs/rook/v1.1/ceph-monitoring.html)中的步骤进行操作。
rook-discover-ncjts 1/1Running0139m OSD Pod 的数量将取决于集群中的节点数量以及配置的设备和目录的数量...如果用上面我们的资源清单,则每个节点将创建一个 OSD。rook-ceph-agent 和 rook-discover 是否存在也是依赖于我们的配置的。...例如: ceph status ceph osd status ceph df rados df 比如现在我们要查看集群的状态,需要满足下面的条件才认为是健康的: 所有 mons 应该达到法定数量 mgr...,包括总体运行状态,mgr、osd 和其他 Ceph 进程的状态,查看池和 PG 状态,以及显示守护进程的日志等等。...要了解如何为 Rook 群集设置监控,可以按照监控指南(https://rook.io/docs/rook/v1.1/ceph-monitoring.html)中的步骤进行操作。
(MON) :Ceph监视器通过跟踪保存集群状态的映射来跟踪整个集群的健康状况 ,它们为每个组件维护单独的信息映射,其中包括OSD映射,MON映射,PG映射和CRUSH映射。...所有群集节点都报告监视节点并共享有关其状态的每个更改的信息。监视器不存储实际数据; 这是OSD的工作。...这是Ceph集群中存储实际用户数据的惟一组件,通常,一个OSD守护进程绑定到集群中的一个物理磁盘。...因此,通常来说,Ceph集群中物理磁盘的总数与在每个物理磁盘上存储用户数据的OSD守护进程的总数相同。...CephFS : Ceph文件系统提供了一个符合posix标准的文件系统,它使用Ceph存储集群在文件系统上存储用户数 据。
Rook Agent:在每个存储节点上运行,并配置一个 FlexVolume 插件,和 Kubernetes 的存储卷控制框架进行集成。...Rook Discovers:检测挂接到存储节点上的存储设备。 Rook 还会用 Kubernetes Pod 的形式,部署 Ceph 的 MON、OSD 以及 MGR 守护进程。...Ceph 需要额外的驱动来保存数据,因此建议提供一组独立的存储节点。 ? 准备工作 Helm Kubernetes(启用 RBAC) 磁盘配置 这里假设在存储节点上配有未格式化的磁盘。...请注意,rook-ceph-system 中的所有 Pod 都应该是 Running 或者 Completed 状态,不应存在 restarts 或 error 的情况。...Rook 有很多数据保存在本地存储节点,重新部署比较困难。如果使用的是 RKE,在 Worker 和 Master 节点上清除数据,然后重新安装 RKE。
Rook 官网:https://rook.io 容器的持久化存储 容器的持久化存储是保存容器存储状态的重要手段,存储插件会在容器里挂载一个基于网络或者其他机制的远程数据卷,使得在容器里创建的文件,实际上是保存在远程存储服务器上...,或者以分布式的方式保存在多个节点上,而与当前宿主机没有任何绑定关系。...在每个存储节点上,您将找到 Ceph 存储对象的文件系统和 Ceph OSD(对象存储守护程序)进程。...Rook oprerator 自动配置存储组件并监控群集,以确保存储处于可用和健康状态。 Rook oprerator 是一个简单的容器,具有引导和监视存储集群所需的全部功能。...rook 使用存储方式 rook 默认使用所有节点的所有资源,rook operator 自动在所有节点上启动 OSD 设备,Rook 会用如下标准监控并发现可用设备: 设备没有分区 设备没有格式化的文件系统
一、前言 我们经常会说:容器和 Pod 是短暂的。其含义是它们的生命周期可能很短,会被频繁地销毁和创建。容器销毁时,保存在容器内部文件系统中的数据都会被清除。...为了持久化保存容器的数据,可以使用存储插件在容器里挂载一个基于网络或者其他机制的远程数据卷,使得在容器里创建的文件,实际上是保存在远程存储服务器上,或者以分布式的方式保存在多个节点上,而与当前宿主机没有绑定关系...这样,无论在哪个节点上启动新的容器,都可以请求挂载指定的持久化存储卷。...Rook Agent 代理部署在 K8S 每个节点上以 Pod 容器运行,每个代理 Pod 都配置一个 Flexvolume 驱动,该驱动主要用来跟 K8S 的卷控制框架集成起来,每个节点上的相关的操作...四、设置 dashboard dashboard 是非常有用的工具,可让你大致了解 Ceph 集群的状态,包括总体运行状况,单仲裁状态,mgr,osd 和其他 Ceph 守护程序的状态,查看池和 PG
Ceph是一个分布式存储系统,提供对象、文件和块存储。在每个存储节点上,您将找到Ceph存储对象的文件系统和Ceph OSD(对象存储守护程序)进程。...https://github.com/rook/rook/blob/master/README.md 当我创建集群时,我构建了具有40GB硬盘的VM,所以使用5个Kubernetes节点,在我的集群上提供了大约...在我的个人群集上,我按照以下步骤安装了Rook+Ceph v0.9.0: git clone git@github.com:rook/rook.git cd rook git checkout v0.9.0...在我的群集上,POD花了大约2分钟来部署,初始化并进入运行状态。...":{"storageclass.kubernetes.io/is-default-class":"true"}}}' 这会更新rook-ceph-block存储类,并使其成为群集上存储的默认值。
Node affinity and tolerations(节点关联和容忍度):默认情况下,CSI driver 将在集群中的任何节点上运行。...osd pod 的数量将取决于集群中的节点数量和配置的设备数量。如果没有修改上面的 cluster.yaml,预计每个节点会创建一个 OSD。...NFS client packages 必须安装在 Kubernetes 可能运行挂载 NFS 的 pod 的所有节点上。...在 CentOS 节点上安装 nfs-utils 或在 Ubuntu 节点上安装 nfs-common。...list of annotations annotations: rook: nfs 创建您保存在 nfs-ceph.yaml 中的 NFS server 实例: kubectl create
写在开篇 “ 上一次,我发了一篇:《理论篇:让我们一起鲁克鲁克——rook(开源存储编排)》。这次,来一篇实战,使用rook在k8s上把ceph集群搞起来。...节点上做操作。...在 Kubernetes 中,PVC 用于向存储系统请求指定大小的存储空间。如果请求的 PVC 大小无法得到强制执行,则无法保证所请求的存储空间大小。...” 暴露Dashboard Dashboard可以让我们查看Ceph集群的状态,包括整体的运行状况、mon仲裁状态、mgr、osd 和其他Ceph守护程序的状态、查看池和PG状态、显示守护程序的日志等。...Ceph Monitor 是 Ceph 集群的核心组件之一,负责维护 Ceph 集群的状态、拓扑结构、数据分布等信息,是 Ceph 集群的管理节点。
这个 RBD 卷实际上是由 Rook 创建的 Ceph RBD 卷,并被挂载到了目标 Pod 中。...同时,Rook 还会自动将 Ceph RBD 卷的映射信息保存在 Kubernetes 的 PV 中,以便于后续的使用。...192.168.11.9 k8s worker、ceph osd 5个1TB硬盘 在一个由1个master节点和2个worker节点组成的Kubernetes集群上使用Rook作为后端存储管理器来运行...可以在OSD节点上运行ceph-osd命令,并将该节点的IP地址和端口添加到Ceph集群中。...external-cluster.yaml:该文件包含了Rook与外部Ceph集群集成所需的配置信息和资源定义,可以使用该文件将Rook连接到已有的Ceph集群上,从而利用Rook提供的管理和监控功能。
与 Orchestrator API 紧密集成—— Ceph 的 Orchestrator 界面在 cephadm 的开发过程中得到了广泛的发展,以匹配实现并清晰地抽象出 Rook 中存在的(略有不同)...将群集彼此隔离—— 支持多个 Ceph 集群同时存在于同一主机上一直是一个比较小众的场景,但是确实存在,并且以一种健壮,通用的方式将集群彼此隔离,这使得测试和重新部署集群对于开发人员和用户而言都是安全自然的过程...true 2、创建新的 OSD 有几种方法可以创建新的 OSD: 【1】告诉 Ceph 使用任何可用和未使用的存储设备: # 如果将新磁盘添加到群集,它们将自动用于 创建新的 OSD。...pool ls 2、在 ceph 集群中创建一个 pool #这里的100指的是PG组: ceph osd pool create rbdtest 100 9)PG 相关 PG =“放置组”。...1、查看 pg 组的映射信息 ceph pg dump # 或者 # ceph pg ls 2、查看一个 PG 的 map ceph pg map 7.1a 3、查看 PG 状态 ceph pg stat
时钟偏移警告 MON可能被MON节点之间的重要的时钟偏移激烈的影响。这经常会转变为没有明显原因的诡异的行为。为了避免这种问题,应该在MON节点上运行一个时间同步的工具。...在MON节点执行如下命令,可以明确列出卡住的PG: ceph pg dump_stuck stale ceph pg dump_stuck inactive ceph pg dump_stuck unclean...Ceph清理和深度清理后到PG处于inconsistent态: 清理操作被用来检查对象的可用性和健康状态。...下面的例子说明这是怎么发生的,有1个PG他映射的的OSD是 1和2: 1.OSD 1挂掉 2.OSD 2单独处理一些请求 3.OSD 1运行 4.OSD 1和2重新peering,1上丢失的对象在队列中等待恢复...5.在新对象之前被复制之前,OSD2挂掉 现在OSD 1知道一些对象存在,但是没有这个副本活的OSD。
/lfy_k8s_images/rook-ceph:v1.6.3## 建议修改以下的东西。...修改svc的selector即可 apiVersion: v1kind: Servicemetadata: labels: app: rook-ceph-mgr ceph_daemon_id...ceph用来做块存储的#cephfs:是用来做共享文件系统的六、卸载# rook集群的清除,##1、 delete -f 之前的yaml##2、 再执行如下命令kubectl -n rook-ceph...": []}}' --type=merge##3、 清除每个节点的 /var/lib/rook 目录## 顽固的自定义资源删除;kubectl -n rook-ceph patch cephblockpool.ceph.rook.io...RWO(ReadWriteOnce)单节点读写【一个Pod操作一个自己专属的读写区】,适用于(有状态副本集) Share FS:共享存储。
,所有 Ceph 存储集群的部署都始于部署一个个 Ceph 节点、网络和 Ceph 存储集群。...Monitors: Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。...Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。...下面我们来介绍下如何利用rook搭建ceph集群,然后pod通过pvc的方式挂载到ceph存储上。 本次测试环境: tke集群:1.18.4 docker:19.03.8 rook:1.9.2 1....正常,dashboard上也有查看fs有一个client,就是pod对应在节点的目录挂载到ceph image.png image.png 5.
文件存储不管是来自 Ceph 块设备、 Ceph 对象存储、 Ceph 文件系统、还是基于 librados 的自定义存储,将数据存储到 Ceph 集群上的步骤大致相同,大概可以归纳为Ceph客户端将数据存放在存储对象中...Object->PG 映射:undefineda) hash(oid) & mask-> pgid 。undefinedb) mask = PG 总数 m(m 为 2 的整数幂)-1 。...PG->OSD 映射:undefineda) CRUSH(pgid)->(osd1,osd2,osd3) 。Ceph编排工具Ceph社区开发了多种编排工具,方便你快速构建一个Ceph集群。...https://docs.ceph.com/en/quincy/cephadm/#cephadm如果你希望你的集群运行在Kubernetes中,运行在云服务器上,可以使用rook-ceph。...https://rook.io/docs/rook/v1.10/Getting-Started/intro/更多技术分享浏览我的博客:https://thierryzhou.github.io参考1(https
本篇文章将手把手带你在 K8s 上搭建分布式存储集群(Rook/ceph) 1 环境准备 1.1 基础环境 3台配置一致的虚拟机: 虚拟机配置:4c 8g 虚拟机操作系统:cents7 硬盘:vda:...:v15.2.11 rook:1.6.3 1.3 前提 正常运行的多节点k8s集群,两个子节点及以上 rook的版本大于1.3,无法使用目录创建集群,要使用单独的裸盘进行创建,也就是创建一个新的磁盘,挂载到宿主机...40m 其中osd-0、osd-1、osd-2容器必须是存在且正常的,如果上述pod均正常运行成功,则视为集群安装成功。...delete cephcluster rook-ceph 确认上一步删除之后,查询一下 kubectl -n rook-ceph get cephcluster 4.2 删除Operator 和相关的资源...rook创建cluster的时候会把部分数据卸载本机的/var/lib/rook(dataDirHostPath指定的目录)中,如果不删除会影响下次集群部署,rook据说下个版本会增加k8s 本地存储调用的功能
ROOK_ENABLE_DISCOVERY_DAEMON: "true" # 镜像 # 国外镜像,需访问国外网站 # 容忍,由于测试环境,需要部署到master节点 -...名称 # rbd-pvc-snapshot: 快照名称 # storage: 必须大于等于之前快照pvc的大小 apiVersion: v1 kind: PersistentVolumeClaim metadata...3.2、移除osd # 移除osd # 需先确认移除osd后集群又足够的空间进行数据存储,否则先增加osd # 确认剩余osd和pg正常 # 不要一次移除过多osd # operator副本数设置为0...,防止自动重建 kubectl -n rook-ceph scale deployment rook-ceph-operator --replicas=0 # 删除集群中对应osd kubectl...rook-ceph-osd- # operator副本数设置为1 kubectl -n rook-ceph scale deployment rook-ceph-operator --replicas
用于部署一个单节点、集所有功能于一身的Ceph集群作为测试学习使用。...提示一:根据每个OSD的pg数量关闭集群健康警告。...通常,第一个变量被设置为30,如果OSD中的每个“in”平均少于30个pg,集群就会发出警告。...提示二:此变量默认值为300,如果OSD中的每个“in”平均超过300个pg,集群就会发出警告,在本实验的小集群中可能没有很多pg,因此采用禁用。...提示三:根据某个池中对象的数量大于集群中一组池中对象的平均数量,关闭集群健康警告。同样,我们有一个非常小的集群,这避免了通常指示我们需要调优集群的额外警告。
Ceph 存储集群具备了企业级存储的能力,它通过组织大量节点,节点之间靠相互通讯来复制数据、并动态地重分布数据,从而达到高可用分布式存储功能 使用 Rook 可以轻松实现在 Kubernetes 上部署并运行...Rook Agent 代理部署在 K8S 每个节点上以 Pod 容器运行,每个代理 Pod 都配置一个 Flexvolume 驱动,该驱动 主要用来跟 K8S 的卷控制框架集成起来,每个节点上的跟操作相关的操作...它提供了单节点、单主多节点、多主多节点、在公有云上部署等方案,通过它很容易就能完成各种类型版本 k8s 集群的搭建。...node 1h v1.12.1 默认 K8S Master 节点不参入调度的,不过为了下边每个节点都能部署相应的 Pod,所以这里将两个 Master 节点设置为参与调用。...方式二,从 rook-ceph-mgr Pod 的日志中获取,日志会打印出来用户名和密码。
golang client-go 中,Auth plugins(身份验证插件)是用于处理 Kubernetes 集群中用户身份验证的组件。...具体得看你的客户端库运行在k8s集群之外还是k8s集群之内。我的开发机是在k8s集群之外(也就是我在上面写好代码并测试,代码是从外部连接到k8s集群),所以我只需要在群集外进行身份验证即可。...tantianran的证书是否过期(如果证书没有过期,可跳过这个步骤)❝在上篇中,提交CSR获取签名后的证书过期的时间是24小时,已经过期了,难怪我把config搬到开发机器上去连接k8s提示登录失败呢...tantianran来连接k8s,所以删除掉和kubernetes-admin相关的敏感信息,生产环境中为了安全也是要这么做。...==scp到我的开发机scp kubeconfig-tantianran 192.168.11.254:~/.kube/config❝注意:如果想在开发机操作k8s集群,可以去官网或者在master节点上把
领取专属 10元无门槛券
手把手带您无忧上云