[rook] rook的控制流
以下是rook为一个pod准备可用块存储的过程:
1. rook operator运行,并且在k8s每台机器上运行一个rook agent的pod;
2. 用户创建一个pvc,并指定storageclass使用rook.io/block provisionor;
3. operator provisionor的Provision()函数被调用,用以在集群中创建一个block image。此时,Provision阶段已完成,pvc/pv被考虑绑定到一起;
4. 当消费该pvc的pod被创建时,kubelet将会调用Rook Flexvolume的Mount()函数,用以消费预定的存储;
ps:kubelet调用的Mount()是一个阻塞型的函数,只有在driver的mapping/mounting操作完成且agent同步了该操作后,才会继续往下执行。
5. 随后,agent将会按照CRD的描述创建一个volume并attach到该物理机上;(?The agent then creates a volume attach CRD that represents the attachment of the cluster volume to the node. )
6. 接着,agent将volume map到本地机器上,并更新CRD的状态以及设备的路径值(例如/dev/rbd0)
7. 控制权接着转交给driver,如果mapping能够成功执行,则driver将把指定的设备mount到指定的路径上。若在配置文件中还指明了文件系统的类型,则driver还会对该卷进行文件系统格式化操作。
8. driver将反馈kubelet Mount()操作已成功
[rook] rook的控制流的更多相关文章
- rook 排错记录 + Orphaned pod found kube-controller-manager的日志输出
		1.查看rook-agent(重要)和mysql-wordpress 的日志,如下: MountVolume.SetUp failed for volume "pvc-f002e1fe-46 ... 
- rook 入门理解
		参考:https://my.oschina.net/u/2306127/blog/1830356?from=timeline 1.Rook通过一个操作器(operator)完成后续操作,只需要定义需要 ... 
- rook 记录
		更改rook 集群的配置 https://github.com/rook/rook/blob/master/design/cluster-update.md rook集群升级流程 https://ro ... 
- rook issues
		ceph-volumeattacher: failed rbd single_major check, assuming it's unsupported: failed to check for r ... 
- rook
		https://github.com/rook/rook https://rook.github.io/docs/rook/master/ Rook是在云本地环境中运行的分布式存储系统的开源编排器. ... 
- Kubernetes Rook
		Rook Rook 是一个开源的cloud-native storage编排, 提供平台和框架:为各种存储解决方案提供平台.框架和支持,以便与云原生环境本地集成. Rook 将存储软件转变为自我管理. ... 
- 附013.Kubernetes永久存储Rook部署
		一 Rook概述 1.1 Ceph简介 Ceph是一种高度可扩展的分布式存储解决方案,提供对象.文件和块存储.在每个存储节点上,将找到Ceph存储对象的文件系统和Ceph OSD(对象存储守护程序)进 ... 
- 快速上手 Rook,入门云原生存储编排
		Rook 是一个开源 cloud-native storage orchestrator(云原生存储编排器),为各种存储解决方案提供平台.框架和支持,以与云原生环境进行原生集成. Rook 将存储软件 ... 
- K8s 上的分布式存储集群搭建(Rook/ceph)
		转载自:https://mp.weixin.qq.com/s/CdLioTzU4oWI688lqYKXUQ 1 环境准备 1.1 基础环境 3台配置一致的虚拟机 虚拟机配置:4c 8g 虚拟机操作系统 ... 
随机推荐
- APP开发,微信第三方登录的介绍
			去年做了一阵APP相关的开发,经常遇到第三方登陆的需求,比如微信.微博.fb的第三方登陆等等,其实主要的流程都大同小异,这里就以微信为例来介绍,希望对大家有帮助. 微信开放平台(open.weixin ... 
- shell 运算符
			shell的逻辑运算符 涉及有以下几种类型,因此只要适当选择,可以解决我们很多复杂的判断,达到事半功倍效果. 一.逻辑运算符 逻辑卷标 表示意思 1. 关于档案与目录的侦测逻辑卷标! -f 常用!侦测 ... 
- MVC面试问题与答案
			读这篇文章不意味着你一定要去并且能搞定MVC面试.这篇文章的目的是在面试之前让你快速复习MVC知识.这篇文章也不是MVC培训课程. 如果你想学习MVC,从这儿开始 Learn MVC ( Model ... 
- Python2.*与Python3.*共存问题
			安装Python 2.7后,本来在3.4下能正常使用的脚本无法运行.网上有的方法是把两个版本的主程序分别改名为python2和python3,人眼判断脚本,手输命令行执行脚本.像我这样喜欢双击.拖拽的 ... 
- 潭州课堂25班:Ph201805201 django 项目 第三十九课 后台 文章发布,图片上传到 FastDFS后端实现 七牛云讲解(课堂笔记)
			文章发布: # 1,从前台获取参数# 2,校验参数# 3,把数据保存到数据库# 4,返回执行结果到前台,(创建成功或失败) 自定义 froms.py 校验参数 上传图片到七牛云 注册 https:// ... 
- C++程序设计方法3:自动类型转换
			方法1:在源类中定义目标类型转换运算符 #include <iostream> using namespace std; class Dst { public: Dst() { cout ... 
- DP专题:划分数问题
			一.这个专题有什么用 练练DP 练练组合数学 ...... 二.正题 此类问题有如下几种形态: 1. 将n划分成若干正整数之和的划分数.2. 将n划分成k个正整数之和的划分数.3. 将n划分成最大数不 ... 
- shiro入门教程
			一.shiro入门 shiro.ini和log4j.properties要放在src下面,lib是和src同级别的,然后lib下面的jar包是必须的,lib下面的jar包需要add path,如果报错 ... 
- django 静态文件配置
			配置静态文件 在settings.py中尾部添加一下内容 STATICFILES_DIRS = [ #路径 BASE_DIR:项目文件根目录 os.path.join(BASE_DIR,'static ... 
- Yii2 RbacController示例
			RbacController 示例: <?php namespace console\controllers; use Yii; use yii\console\Controller; clas ... 
