kubernetes CSI 存储
CSI
张忠琳
我就是我 不用在怀疑
展开
-
【块存储block源码分析】 linux内核模块ceph nbd源码分析
jewel+ 版本支持 rbd-nbd 的特性,需要 map 支持较多特性的 rbd image 时,可以使用该 nbd driver NBD(Network Block Device) 可以将一个远程主机的磁盘空间,当作一个块设备来使用,就像一块硬盘一样。NBD是一个内核模块,大部分Linux发行版都包含它 与 RBD 内核驱动程序相比,NBD有许多优点:...原创 2020-01-03 10:04:28 · 5617 阅读 · 0 评论 -
【kubernetes/k8s源码分析】flexvolume 自定义存储插件
从1.8版开始,Kubernetes Storage SIG停止接受树内卷插件,建议所有存储提供商树外插件。Flexvolume是Kubernetes 1.8版本以后的GA特性Flexvolume介绍 –enable-controller-attach-detach启用Kubelet选项,从v1.8开始支持动态检测驱动程序的能力。Driver inv...原创 2019-05-08 16:55:13 · 2833 阅读 · 1 评论 -
【kubernetes/k8s源码分析】 rook operator flexvolume attach 源码分析
flexvolume GRPC调用执行 rookflex mount操作/usr/local/bin/rookflex --helpRook Flex volume pluginUsage: rookflex [command]Available Commands: help Help about any command init I...原创 2019-05-06 19:41:10 · 1881 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 rook operator flexvolume provision 源码分析
初始化 provisioner,分别为 ceph.rook.io 和 rook.io controller.NewProvisionController中provisioner实现为RookVolumeProvisioner' 定义 rook/pkg/operator/ceph/provisioner/provisioner.go// Run volume pro...原创 2019-05-06 15:15:41 · 1705 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 rook operator cluster controller源码分析之四
这篇分析pool CRD,object store CRD,object store user CRD,file system CRD, nfs granesha CRD等watcher包括mon,osd健康检查,ceph状态检查Replicated: 数据副副本数apiVersion: ceph.rook.io/v1kind: CephBlockPoolm...原创 2019-05-06 11:12:44 · 1719 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 rook operator cluster controller源码分析之三
這篇文章分析osd啓動流程存储落地操作的节点叫做OSD(Object Storage Device),基于它工作的RADOS、PG等模块启动命令: ceph-osd --foreground --id 1 --conf /var/lib/rook/osd1/rook-ceph.config --osd-data /var/lib/rook/osd1 --ke...原创 2019-05-06 08:41:18 · 2326 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 rook operator cluster controller源码分析之一
Mon作用是监控、管理和协调整个分布式系统环境中其它各个OSD/PG、Client、MDS角色的工作,保证整个分布环境中的数据一致性 MON采用主备模式(leader/follower),即使系统中有多个MON角色,实际工作的也只有一个MON,其它MON都处于standby状态 当Ceph失去了Leader MON后,其它MON会基于PaxOS算...原创 2019-05-05 14:49:44 · 2301 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 rook operator cluster controller源码分析之二
接着上篇,這篇分析mgr的啓動mgr工作原理 工作的模式是事件驱动型的,意思就是等待事件,事件来了则处理事件返回结果,又继续等待 负责跟踪运行时间指标和Ceph群集的当前状态,包括存储利用率,当前性能指标和系统负载。 Ceph Manager守护程序还托管基于python的插件来管理和公开Ceph集群信息,包括基于Web的仪表板和REST API。...原创 2019-05-05 18:34:13 · 1686 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 rook operator discover源码分析
启动命令 rook discover --discover-interval 60m启动默认参数 --discover-interval=1h0m0s, --help=false, --log-flush-frequency=5s, --log-level=INFO定期节点发现新设备,并更新至rook-ceph下的configmap中,命名为local-devic...原创 2019-05-05 11:54:21 · 1889 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 rook operator agent源码分析
启动命令 rook ceph agent启动默认参数 --help=false, --log-flush-frequency=5s, --log-level=INFO 挂载路经:/usr/libexec/kubernetes/kubelet-plugins/volume/exec每个 k8s node 中都启动rook agent,接受 rook oper...原创 2019-05-05 11:31:32 · 1805 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 kubernetes csi external-attacher 源码分析
Status and ReleasesLatest stable release Branch Min CSI Version Max CSI Version Container Image Min K8s Version Max K8s Version Recommended K8s Version external-attacher v1.2....原创 2019-04-28 18:11:17 · 2800 阅读 · 1 评论 -
【kubernetes/k8s源码分析】 rook operator启动源码分析
https://github.com/rook/rook operator:作用启动监控存储集群,包括mon,osd,mgr等服务,可以支持 block 块存储,file system 文件存储,object 对象存储 (S3/Swift)。 启动包括ceph agent 与 discover服务,agent 包含Flexvolume plugin,包括attaching n...原创 2019-05-05 10:19:30 · 2551 阅读 · 1 评论 -
【kubernetes/k8s概念】rook
https://github.com/rook/rook 云原生计算基金会(CNCF)的孵化级项目,是Kubernetes的开源云本地存储协调器,为各种存储解决方案提供平台,框架和支持,以便与云原生环境本地集成 Ceph is a highly scalable distributed storage solution forblock storage,obj...原创 2019-05-05 10:12:13 · 3444 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 kubernetes csi external-provisioner源码分析
Git Repository:https://github.com/kubernetes-csi/external-provisionerLatest stable release Branch Min CSI Version Max CSI Version Container Image Min K8s Version Max K8s Version ...原创 2019-04-28 16:27:48 · 3264 阅读 · 1 评论 -
【kubernetes/k8s概念】k8s csi
WHYIn-Tree: 需要将后端存储的代码逻辑放到K8S的代码中运行。逻辑代码可能会引起与K8S其他部件之间的相互影响。Flexvolume: 调用一个主机的可执行程序包的方式执行存储卷的挂载使用。解决了In-Tree方式的强耦合,不过命令行调用的方式,在主机安全性、部署依赖的容器化、与K8S服务之间的相互扩展性等方面存在不足Flexvolume运行在host 空间,不能使用rbac...原创 2019-04-26 10:20:46 · 6095 阅读 · 1 评论 -
【kubernetes/k8s源码分析】kubernetes volume plugin源码分析
plugin调用函数: 文章https://blog.csdn.net/zhonglinzhang/article/details/82800287分析volume manager调用reconcile -> MountVolume -> NewMouter根据插件调用 -> 执行plugin的SetUpvolumePlugin接口存储提...原创 2019-01-18 09:56:03 · 3323 阅读 · 0 评论 -
【kubernetes/k8s源码分析】kubelet pod 挂载volume源码分析
1. NewVolumeManager 初始化volumeManager volumePluginMgr 使用volume 插件 实例化 volumeManager,实例化desiredStateOfWorldPopulator 这个reconciler是主要调整,attach detach mount unmount操作的,这个主要讲解...原创 2019-05-07 16:33:39 · 4029 阅读 · 0 评论 -
【kubernetes/k8s概念】 rook design分析
1.Ceph Cluster CRDapiVersion: ceph.rook.io/v1kind: CephClustermetadata: name: rook-ceph namespace: rook-cephspec: cephVersion: # see the "Cluster Settings" section below for more deta...原创 2019-05-22 09:27:08 · 2220 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 kubernetes csi host-path 源码分析
git version:https://github.com/kubernetes-csi/csi-driver-host-pathv1.1.0ChangelogAdded raw block support:#6,#42 Added ephemeral volume support:#10 Improved deployment examples:#14,#27,#2...原创 2019-07-05 08:36:27 · 3248 阅读 · 1 评论 -
【kubernetes/k8s源码分析】 kubernetes csi external-snapshotter 源码分析
Git Repository:https://github.com/kubernetes-csi/external-snapshotterStatus:AlphaLatest stable release Branch Min CSI Version Max CSI Version Container Image Min K8s Version Ma...原创 2019-07-02 17:29:13 · 2896 阅读 · 1 评论 -
【kubernetes/k8s源码分析】 k8s secret storage 源码分析
Secret是用来保存小片敏感数据的k8s资源,例如密码,token,或者秘钥。这类数据当然也可以存放在Pod或者镜像中,但是放在Secret中是为了更方便的控制如何使用数据,并减少暴露的风险。 用户可以创建自己的secret,系统也会有自己的secret。 Pod需要先引用才能使用某个secret,Pod有2种方式来使用secret:作为volume的一个域...原创 2019-05-29 20:17:26 · 3598 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 k8s ceph rbd storage 源码分析
secret.yamlapiVersion: v1kind: Secretmetadata: name: rbd-secrettype: "kubernetes.io/rbd"data: key: QVFBM2IvUmNqQkM2S0JBQVZZL041aFNJSk53algvTDB1eU56Y3c9PQ== rbd-class.yaml...原创 2019-06-03 09:36:27 · 3169 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 k8s hostpath storage 源码分析
hostPath允许挂载Node上的文件系统到Pod里面去。如果Pod有需要使用Node上的东西,可以使用hostPathhostPath的用途如下:运行需要访问 Docker 内部的容器;使用/var/lib/docker的hostPath 在容器中运行 cAdvisor;使用/dev/cgroups的hostPath为hostPath卷指...原创 2019-05-29 20:03:57 · 4617 阅读 · 1 评论 -
【kubernetes/k8s源码分析】 k8s emptydir storage 源码分析
EmptyDir 类型:同一个pod内的容器都能读写 EmptyDir 中文件。一旦pod 离开了宿主机,EmptyDir 中的数据就会被永久删除。所以目前 EmptyDir 类型的 volume主 要用作临时空间。 缺省情况下,EmptyDir 是使用主机磁盘进行存储的,需要使用 tmpfs 作为 emptyDir 的可用存储资源也是可以的,只需要在创建 empt...原创 2019-05-29 09:08:59 · 3188 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 k8s local storage 源码分析
Local Storage 就是 Kubernetes 集群中每个节点的本地存储,在 Kubernetes 1.7 中 kubelet 可以支持对 kube-reserved 和system-reserved 指定本地存储资源。Local 存储是为了替换hostPathvolume kubernetes v1.14.0 正式发布,新特性就是本地持久化管理( Local Sto...原创 2019-05-28 20:18:12 · 3048 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 csi driver nfs 源码分析
https://github.com/kubernetes-csi/csi-driver-nfs nfs csi 的实现,其实这里不支持动态storageclass,只支持 mount 操作,看看怎么实现的 endpoint:csi socket nodeid: node id 也很好理解Usage: NFS [flags]Flags: ...原创 2019-05-28 20:01:38 · 3732 阅读 · 1 评论 -
【kubernetes/k8s源码分析】 ceph csi cephfs plugin 源码分析
Ceph FS 是一个支持POSIX接口的文件系统,它使用 Ceph 存储集群来存储数据。文件系统对于客户端来说可以方便的挂载到本地使用。 Ceph FS 使用cephfuse模块扩展到用户空间(FUSE)中的文件系统。允许使用libcephfs库与RADOS集群进行直接的应用程序交互。Cephfs使用方法Cephfs kernel modul...原创 2019-05-09 17:01:52 · 3572 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 k8s csi plugin attach mount源码分析
接着kubelet pod 挂载volume源码分析文章https://blog.csdn.net/zhonglinzhang/article/details/89923875 volumeAttacher, newAttacherErr := attachableVolumePlugin.NewAttacher(),如果使用CSI插件则调用如下:func (p *csiP...原创 2019-05-15 14:42:52 · 2702 阅读 · 1 评论 -
【kubernetes/k8s源码分析】 k8s csi plugin watcher源码分析
CSI(Container Storage Interface)规范: https://github.com/container-storage-interface/spec 主要工作是监听plugins目录,然后根据事件操作,Create事件则注册插件,Remove事件则删除插件 +----------------...原创 2019-05-15 09:02:06 · 2728 阅读 · 1 评论 -
【kubernetes/k8s源码分析】 ceph csi rbd plugin 源码分析
被external-provisioner发送CreateVolumeRequest GRPC请求执行rbd命令,创建pv 分为三阶段就是 Provision Attach MountCreateVolume +------------+ DeleteVolume+------------->| CREATED +--------------+| ...原创 2019-05-09 16:29:14 · 2859 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 kubernetes csi node driver registrar 源码分析
Git Repository:https://github.com/kubernetes-csi/node-driver-registrarStatus:GA/StableLatest stable release Branch Min CSI Version Max CSI Version Container Image Min k8s Version...原创 2019-05-09 14:49:54 · 3503 阅读 · 1 评论 -
【kubernetes/k8s概念】 nfs 概念与原理
1. NFS 原理 NFS是Network File System的简写,即网络文件系统。NFS基于RPC(Remote Procedure Call)远程过程调用实现。由操作系统的内核,将 NFS 文件系统的调用请求通过 TCP/IP 发送至服务端的 NFS 服务。NFS服务器执行相关的操作,并将操作结果返回给客户端rpc.nfsd:主要的NFS进程,管理客户端是否可登录...原创 2019-05-28 12:02:06 · 2867 阅读 · 0 评论 -
【kubernetes/k8s源码分析】 external nfs storage 源码分析
https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-clientstorageclass.yamlapiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: managed-nfs-storageprovisio...原创 2019-05-28 14:05:08 · 2404 阅读 · 1 评论 -
【kubernetes/k8s源码分析】 kubernetes csi external-resizer 源码分析
Git Repository:https://github.com/kubernetes-csi/external-resizerStatus:AlphaLatest release Branch Min CSI Version Max CSI Version Container Image Min K8s Version Max K8s Versi...原创 2019-07-05 10:35:27 · 2665 阅读 · 1 评论