主机挂载存储_备战CKA每日一题——第3天 | 对接CSI存储知识

本活动在微信公众号【我的小碗汤】上举行,这里参与答题无效哦!

昨日考题

在Kubernetes PVC+PV体系下通过CSI实现的volume plugins动态创建pv到pv可被pod使用有哪些组件需要参与?

A. PersistentVolumeController + CSI-Provisoner + CSI controller plugin
B. AttachDetachController + CSI-Attacher + CSI controller plugin
C. Kubelet + CSI node plugin

昨日答案

ABC

昨日解析

k8s中,利用PVC 描述Pod 所希望使用的持久化存储的大小,可读写权限等,一般由开发人员去创建;利用PV描述具体存储类型,存储地址,挂载目录等,一般由运维人员去提前创建。而不是直接在pod里写上volume的信息。一来可以使得开发运维职责分明,二来利用PVC、PV机制,可以很好扩展支持市面上不同的存储实现,如k8s v1.10版本对Local Persistent Volume的支持。

我们试着理一下Pod创建到volume可用的整体流程。

用户提交请求创建pod,PersistentVolumeController发现这个pod声明使用了PVC,那就会帮它找一个PV配对。

没有现成的PV,就去找对应的StorageClass,帮它新创建一个PV,然后和PVC完成绑定。

新创建的PV,还只是一个API 对象,需要经过“两阶段处理”,才能变成宿主机上的“持久化 Volume”真正被使用:

第一阶段由运行在master上的AttachDetachController负责,为这个PV完成 Attach 操作,为宿主机挂载远程磁盘;

第二阶段是运行在每个节点上kubelet组件的内部,把第一步attach的远程磁盘 mount 到宿主机目录。这个控制循环叫VolumeManagerReconciler,运行在独立的Goroutine,不会阻塞kubelet主控制循环。

完成这两步,PV对应的“持久化 Volume”就准备好了,POD可以正常启动,将“持久化 Volume”挂载在容器内指定的路径。

k8s支持编写自己的存储插件FlexVolume 与 CSI。不管哪种方式,都需要经过“两阶段处理”,FlexVolume相比CSI局限性大,一般我们采用CSI方式对接存储。

CSI 插件体系的设计思想把这个Provision阶段(动态创建PV),以及 Kubernetes 里的一部分存储管理功能,从主干代码里剥离出来,做成了几个单独的组件。这些组件会通过 Watch API 监听 Kubernetes 里与存储相关的事件变化,比如 PVC 的创建,来执行具体的存储管理动作。

6afebd89b32b2094b02d030613aa765a.png上图中CSI这套存储插件体系中三个独立的外部组件(External Components),即:Driver Registrar、External Provisioner 和 External Attacher,对应的是从 Kubernetes 项目里面剥离出来的部分存储管理功能。

我们需要实现Custom Components这一个二进制,会以gRpc方式提供三个服务:CSI Identity、CSI Controller、CSI Node。

Driver Registrar 组件,负责将插件注册到 kubelet 里面;Driver Registrar调用CSI Identity 服务来获取插件信息;External Provisioner 组件监听APIServer 里的 PVC 对象。当一个 PVC 被创建时,它就会调用 CSI Controller 的 CreateVolume 方法,创建对应 PV;

External Attacher 组件负责Attach阶段。Mount阶段由kubelet里的VolumeManagerReconciler控制循环直接调用CSI Node服务完成。

两阶段完成后,kubelet将mount参数传递给docker,创建、启动容器。

整体流程如下图:

a96e50f88c56b450a0678b68b47bd760.png

考试体验总结

https://www.kubernetes.org.cn/5168.htmlhttps://blog.csdn.net/deerjoe/article/details/86300826

今日考题

通过单个命令创建一个deployment并暴露Service。deployment和Service名称为cka-1120,使用nginx镜像, deployment拥有2个pod

作者简洁

作者:小碗汤,一位热爱、认真写作的小伙,目前维护原创公众号:『我的小碗汤』,专注于写golang、docker、kubernetes等知识等提升硬实力的文章,期待你的关注。 转载说明:务必注明来源(注明:来源于公众号:我的小碗汤, 作者:小碗汤)

作者简洁

作者:小碗汤,一位热爱、认真写作的小伙,目前维护原创公众号:『我的小碗汤』,专注于写go语言、docker、kubernetes、java等开发、运维知识等提升硬实力的文章,期待你的关注。转载说明:务必注明来源(注明:来源于公众号:我的小碗汤,作者:小碗汤)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android之Android Studio常用插件

Android Studio常用插件 Android Studio常用插件ButterKnife Zelezny官网:http://jakewharton.github.io/butterknife/github:https://github.com/JakeWharton/butterknife功能:将光标停留在Activity中onCreate方法中setContentView方法的xml…

招人!招人!这篇推文不要标题,只要你!

对,没错,就是这么直接超模君要要要要招人了因为我们知道很多有才华有能力的人并没有找到适合自己的工作比如你每当夜幕降临躺在床上仰望星空(望着天花板)的时候你的内心是不是都充满了迷茫?但,这并不是你的…

用python爬虫抓站的一些技巧总结

转自http://obmem.info/?p476 1.最基本的抓站 import urllib2 content urllib2.urlopen(http://XXXX).read() -2.使用代理服务器这在某些情况下比较有用,比如IP被封了,或者比如IP访问的次数受到限制等等。 import urllib2 proxy_support urllib2.Prox…

第六届中国开源年会(COSCon'21)开心开源精彩收官

“ 点击蓝字 / 关注我们 ”第六届中国开源年会开心开源 Happy Hacking精彩收官!开源社作为国内第一个专注于开源治理、国际接轨、社区发展,以及开源项目的开源社区,完全由志愿贡献于开源事业的个人成员组成。 由开源社主办的 “中国开源年会 …

matlab浮点数求绝对值_MATLAB仿真阵列天线切比雪夫综合法(附代码)

来源:cnblogs在《自适应天线与相控阵》这门课中,了解到了关于理想低副瓣阵列设计的一些方法,其中切比雪夫等副瓣阵列设计方法是一种基础的方法,故将其设计流程写成maltab程序供以后学习使用。在此分享一下。 此方法全称为道尔夫-切…

丘成桐:中国学生基础真的比欧美学生好吗?

全世界只有3.14 % 的人关注了爆炸吧知识“中国学生基础好?这都是多少年来可怕的自我麻醉!我不认为中国学生的基础知识学得有多好!” “美国最好的学生真是好得不得了。应该这样比较,不管是美国,还是中国,…

WPF开发登录窗口之——添加密码完善登录窗口

WPF开发者QQ群&#xff1a; 340500857 | 微信群 目前人数太多&#xff0c;暂不开放01—代码如下一、添加类在“CustomControl”文件夹中加“PasswordInputBox.xaml”与文本输入框一样&#xff0c;唯一的区别是将文本框改成密码框&#xff1a;<UserControl x:Class"Lo…

Android之PullToRefresh(ListView 、GridView 、WebView)使用详解和总结

PullToRefresh(ListView 、GridView 、WebView) 基本上每个安卓项目里面都有PullToRefresh的使用,然后我到网上去找了相关知识,很多都不全面,不详细,缺东缺西,然后我就到网上博客里面到处找,更具自己项目里面的使用,把PullToRefreshListView PullToRefreshGrid…

bat脚本中获取上级目录_使用Python写一个可以监控Tomcat 运行的脚本,并且把.py文件转换成.exe文件...

使用Python写一个可以监控Tomcat 运行的脚本,并且把.py文件转换成.exe文件 文章来源与博主本人的CSDN博客&#xff0c;博客地址&#xff1a;https://blog.csdn.net/weixin_43558566/article/details/101458567之前写过.bat 脚本用来监控tomcat运行宕机后自动重启的文章&#xf…

史上最低估自己的天才科学家!预言自己的发现无用,没想到影响全世界,可他却在37岁..........

全世界只有3.14 % 的人关注了爆炸吧知识天妒英才真实存在赫兹在证明了电磁波存在后&#xff0c;他对自己的发现做了一个十分不自信的预测&#xff1a;“我认为我发现的无线电波不会有任何实际应用。”当然&#xff0c;也许是他太优秀了&#xff0c;干啥啥都行&#xff0c;所以觉…

阿里分布式中间件Seata从入门到精通

最近在写一本关于阿里巴巴分布式事务中间件 Seata 的电子书&#xff0c;Seata可以说是分布式事务中间件中最完善的了&#xff0c;包括了 AT、TCC、Saga、XA 四种模式&#xff0c;目前 Seata 已经更新到了 1.4.2 版本。这本电子书主要分成两部分&#xff0c;第一部分是入门学习&…

sql两个列值以下划线拼接得到一个新的列_面试必备sql知识点——MySQL基础

在刷了上百道sql题后&#xff0c;发现所有的题目都是基于某一个或几个知识点来做考察的&#xff0c;所以理清基础的知识细节&#xff0c;才能在题目考察到任意知识点时&#xff0c;找到解决线索。温故而知新&#xff0c;学习在于总结&#xff0c;于是我再次对已经学习过的mysql…

为什么不能除以0?

全世界只有3.14 % 的人关注了爆炸吧知识说出来你可能不信但这是真的今天学习了除法的表妹跑来问我&#xff1a;为什么不能除以0&#xff1f;就这个问题&#xff0c;我专门请来了高冷的Siri。同样是数字&#xff0c;0为什么就会这么惨呢&#xff1f;小学生小学老师会直接给你来一…

一步步构建大型网站架构

之前我简单向大家介绍了各个知名大型网站的架构&#xff0c;MySpace的五个里程碑、Flickr的架构、YouTube的架构、PlentyOfFish的架构、WikiPedia的架构。这几个都很典型&#xff0c;我们可以从中获取很多有关网站架构方面的知识&#xff0c;看了之后你会发现你原来的想法很可能…

Android之webview与js交互

对于android初学者应该都了解webView这个组件。之前我也是对其进行了一些简单的了解&#xff0c;但是在一个项目中不得不用webview的时候&#xff0c;发现了webview的强大之处&#xff0c;今天就分享一下使用webview的一些经验。 1、首先了解一下webview。 webview介绍的原文如…

java.util.ResourceBundle使用详解

java.util.ResourceBundle使用详解一、认识国际化资源文件这个类提供软件国际化的捷径。通过此类&#xff0c;可以使您所编写的程序可以&#xff1a;轻松地本地化或翻译成不同的语言一次处理多个语言环境以后可以轻松地进行修改&#xff0c;支持更多的语言环境说的简单点&#…

12如何隐藏dock栏_iPhone边框“变色”壁纸,隐藏Dock栏

自从iOS14上线以来&#xff0c;iPhone的玩法真的是花样百出&#xff0c;今天给大家带来一组很有意思的iPhone专用壁纸&#xff0c;不仅拥有色彩边框&#xff0c;还能隐藏主屏界面底部的Dock栏。这组壁纸除了外边框自带颜色以外&#xff0c;锁屏界面的通知栏和底部两个按钮的位置…

微信新功能又来了,这些功能再次打开了我新世界的大门!

全世界只有3.14 % 的人关注了爆炸吧知识微信视频号&#xff0c;是一个人人都可记录和创作的内容平台&#xff0c;也是一个了解他人、了解世界的窗口。在过去一段时间里&#xff0c;视频号可能是微信迭代最多&#xff0c;变化最多&#xff0c;也受到最多关注的功能。内容创作者大…

Processing编译android的apk应用

折腾了3天&#xff0c;总算弄进去了&#xff0c;真麻烦~&#xff01; 成果如下&#xff1a; 转载于:https://www.cnblogs.com/x5115x/archive/2013/04/11/3013593.html

Android之DiskLruCache(缓存工具)

DiskLruCache DiskLruCache是一个十分好用的android缓存工具&#xff0c;我们可以从GitHub上下载其源码&#xff1a;https://github.com/JakeWharton/DiskLruCache DiskLruCache所有的数据都存储在/storage/emulated/0/Android/data/应用包名/cache/XXX文件夹中(你也可以修改&…