阿里云-CSI
作者:互联网
背景介绍
Kubernetes支持二种存储接口FlexVolume & CSI,前者Kubernetes早期(Kubernetes v1.8)的接入方式,FlexVolume 类似于CNI插件,二进制文件,需要提前放入到指定的目录/usr/libexec/kubernetes/kubelet-plugins/volume/exec,缺点会引起一些驱动无法找到的问题 no volume plugin matched;后者是Kubernetes后期支持
- FlexVolume 是一个自 1.2 版本(在 CSI 之前)以来在 Kubernetes 中一直存在的Out-of-Tree插件接口。 它使用基于 exec 的模型来与驱动程序交互, 用户必须在每个节点(在某些情况下是主控节点)上的预定义卷插件路径中安装 FlexVolume 驱动程序可执行文件
- CSI 容器存储接口 (CSI) 为容器编排系统(如 Kubernetes)定义标准接口,以将任意存储系统暴露给它们的容器工作负载,并非插件而是一个系统内的组件与存储系统一起使用。使用CSI至少包含二个组件
-
- Controller 管理持久性外部卷的控制器。它使用StatefulSet部署形式实现为gRPC服务器
- Node 将持久性外部卷安装到群集节点的节点。它还基于DaemonSet部署形式实现为gRPC服务器
阿里云CSI
官方文档:
阿里云容器服务ACK的容器存储功能基于Kubernetes存储系统,深度融合阿里云存储服务并完全兼容Kubernetes原生的存储服务,例如EmptyDir、HostPath、Secret、ConfigMap等存储。ACK基于社区容器存储接口(CSI)通过部署CSI插件实现了阿里云存储服务接入能力
阿里云的CSI分为二个部分包括CSI-Plugin和CSI-Provisioner
说明 CSI插件需要您的集群版本大于1.14,且初始化集群的时候选择使用CSI插件。或者自行配置节点kubelet参数,确保
enable-controller-attach-detach
为true,此参数默认是开启的不能与flexvolume在一个集群中同时使用
如果Kubernetes集群不受于阿里云STS管理,那么你需要创建 ACCESS_KEY_ID, ACCESS_KEY_SECRET to environment
标签:容器,插件,CSI,Kubernetes,存储,阿里 来源: https://www.cnblogs.com/apink/p/15190306.html