自ACK 1.16版集群开始,部署集群时会默认安装最新版本的CSI组件,您将可以直接通过csi-plugin插件使用阿里云存储服务。csi-plugin提供了数据卷的全生命周期管理,包括数据卷的创建、挂载、卸载、删除及扩容等服务。 使用说明 关于组件使用更多信息,请参见管理csi-plugin和csi-provisioner组件。 重要 csi-plugin组件在v1.22....
通过csi-plugin和csi-provisioner组件可以帮您实现存储卷的动态创建、挂载、卸载等功能。 前提条件 已创建1.14及以上版本的ACK集群,且存储插件类型为CSI,请参见创建集群。 组件介绍 csi-plugin和csi-provisioner两个组件在创建集群时默认安装。支持云盘、NAS、OSS三种存储卷。
实现 Volume 创建/删除接口csiProvisioner:=ctrl.NewCSIProvisioner(clientset,*operationTimeout,identity,*volumeNamePrefix,*volumeNameUUIDLength,grpcClient,snapClient,provisionerName,pluginCapabilities,controllerCapabilities,...)...// 真正的 ProvisionController,包装了上面的 CSIProvisionerprovisionController=controller...
进入K8s的世界,会发现有很多方便扩展的 Interface,包括CSI,CNI,CRI等,将这些接口抽象出来,是为了更好的提供开放、扩展、规范等能力。 K8s 持久化存储经历了从 in-tree Volume 到 CSI Plugin(out-of-tree) 的迁移,一方面是为了将 K8s 核心主干代码与 Volume 相关代码解耦,便于更好的维护;另一方面则是为了方便各...
csi-plugin组件在v1.22.8-8d3a569-aliyun及其以后的版本更新,均要求容器服务Kubernetes大于1.20版本。 为提升集群稳定性,若您使用1.20及以上版本的集群,建议您将csi-plugin组件升级至v1.24.9-74f8490-aliyun及以上版本。 在ACK Edge集群中,csi-plugin组件仅支持NAS类型的云存储服务挂载能力。
CSI-plugin:K8s 独立拆分出来,实现 CSI 标准规范接口的逻辑控制与调用,是整个 CSI 控制逻辑的核心枢纽; node-driver-registrar:是一个由官方 K8s sig 小组维护的辅助容器(sidecar),它使用 kubelet 插件注册机制向 kubelet 注册插件,需要请求 CSI 插件的 Identity 服务来获取插件信息; ...
- key: topology.diskplugin.csi.alibabacloud.com/zone operator: In values: - cn-shenzhen-a 下面示例是在一个包含三可用区节点的集群进行: # kubectl describe node | grep failure-domain.beta.kubernetes.io/zone failure-domain.beta.kubernetes.io/zone=cn-beijing-a ...
中注册一个csi plugin handler,该handler获取sunnyfs-csi-driver container基本信息后,会做一些操作,如更新node的annotation以及创建/更新CSINode对象。 源码解析 node-driver-registrar 源码解析 node-driver-registrar sidecar container代码逻辑很简单,主要做了两件事:rpc调用自研的csi-plugin插件,调用了GetPluginInfo方法...
一个Node Driver Registrar组件,也就是说,一个Node Driver Registrar只负责一个plugin的注册工作,socket文件命名规则为:csi插件名-reg.sock),Kubelet的pluginManager模块会通过该socket获取CSI Plugin的信息(主要是csi plugin name和csi plugin socket的路径),并将其写入k8s node节点的annotations,从而实现CSI Plugin的...
然后根据返回字段的type,从最开始注册的pluginHandlers中查找对应的handler,这里就是上文说的CSIPlugintype的csi.RegistrationHandler{}对象。 调用该对象的ValidatePlugin和RegisterPlugin来注册插件,这里的注册插件其实就是设置node annotation和label, 以及创建/更新CSINode对象(CSINodeDrivers)。