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

昨日考题

在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 的创建,来执行具体的存储管理动作。

上图中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,创建、启动容器。

整体流程如下图:

考试体验总结

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等开发、运维知识等提升硬实力的文章,期待你的关注。转载说明:务必注明来源(注明:来源于公众号:我的小碗汤,作者:小碗汤)

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

  1. python程序判断梅森素数_蓝桥杯每日一题(9):梅森素数(python)

    Topic: 假如一个数据的全部真因子之和相当于本身,则称它为"完全数"或"完美数" 比如:6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + ...

  2. component是什么接口_【Android每日一题】从Activity创建到View呈现中间发生了什么?...

    前言 前段时间公司招人,作为面试官,我经常让面试者简述View的绘制流程.他们基本都能讲明白View的测量(measure).布局(layout).绘制(draw)等过程. 还有少数人会提到Decor ...

  3. c++局部对象是什么_程序员每日一题-GCROOT对象

    每天一题,进步一点 答案:ABCD 解析 首先了解一下什么是GCROOT. 了解这个概念之前,我们先了解一下垃圾回收. 简单来说,JVM中程序的对象都会在堆区占据一定空间,如果不再使用了,JVM就会把 ...

  4. JS每日一题: 小程序页面之间如何通信?

    20190227 小程序页面之间如何通信? 首先将通信的模型列举出来, 分为以下几种 兄弟页面间通信 父路径页面向子路径页面通信 子路径页面向父路径页面通信 通信的方式 localStorage 本地 ...

  5. k8s挂载目录_云原生存储详解:容器存储与 K8s 存储卷

    作者 | 阚俊宝 阿里云技术专家 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新的机遇与挑战.本文为该系列文章的第二篇,会对容 ...

  6. 线下WINDOWS主机挂载华为云存储

    解决方案 弹性文件服务 此方案较为简单,适用于打通VPN的本地局域网主机,windows/linux都可以使用 对象存储服务 对象存储服务稍复杂,可以通过obsfs并行文件系统工具挂载到linux系统 ...

  7. vmware挂载san存储_戏说 块存储 文件存储 对象存储

    用通俗的语言 讲述复杂的技术   块存储   一个块存储设备通常包含一组控制器和一组磁盘阵列 大多数情况下,块存储是通过SAN网络连接服务器.当然,除了SAN网络之外,还有其它多种块存储访问方式,比如 ...

  8. 手动配置 ESXi 主机挂载 NFS 的最大值

    目录 目录 资料 手动配置 ESXi 主机挂载 NFS 的最大值 资料 官方 KB 地址 手动配置 ESXi 主机挂载 NFS 的最大值 Open: 清单 ==> ESXi 主机 ==> ...

  9. 8s nfs 挂载文件_把你的树莓派家庭实验室变成一个网络文件系统 | Linux 中国

    导读:使用 NFS 服务器将共享文件系统添加到你的家庭实验室. 本文字数:8554,阅读时长大约:12分钟https://linux.cn/article-12413-1.html作者:Chris C ...

最新文章

  1. 如何在 Linux 上用密码加密和解密文件
  2. 中国工业脚轮行业前景展望及营销战略分析报告2021-2027年
  3. java bean转map
  4. DEA使用git提交代码时,点了commit之后卡死在performing code analysis部分,或者performing code analysis结束后没有进入下一步操作。...
  5. c语言中isdigit函数_在C / C ++中使用isdigit()
  6. 必做作业3:原型化系统
  7. bzoj5118: Fib数列2(费马小定理+矩阵快速幂)
  8. 背水一战 Windows 10 (60) - 控件(媒体类): Pointer 涂鸦板, InkCanvas 涂鸦板
  9. 地理空间数据可视分析综述笔记
  10. Whiteboard for mac(mac画图软件)
  11. 使用x264压制视频简介
  12. Nginx实现会话保持
  13. Riverbed:广域网优化应对“云”发展
  14. 京东到家大数据平台架构演进实战
  15. EasyAR4.0使用说明(Unity3D)三----平面图像跟踪扩展:视频播放,涂涂乐
  16. Cordova Android 问题
  17. C语言动态规划和文件操作练习——通讯录
  18. 简析国内外电商的区别
  19. 北大AI公开课第六课--自动驾驶与人工智能by百度陈竞凯
  20. 三通道图像和四通道图像

热门文章

  1. 【招聘(上海)】东方财富证券招聘.net开发
  2. 被低估的.net(上) - 微软MonkeyFest 2018广州分享会活动回顾
  3. 好代码是管出来的——使用GitHub
  4. ICanPay 统一支付网关
  5. 使用 InSpec 实现符合性即代码
  6. 利用 async amp; await 的异步编程
  7. Mac上,为虚拟机集群上的每台虚拟机设置固定IP
  8. 电脑QQ能登上,网页打不开的解决办法
  9. 【经典回放】多种语言系列数据结构算法:二叉树(C#版)
  10. 基于.NET的系统开发需要注意的问题总结