0
点赞
收藏
分享

微信扫一扫

【云原生】基于Kubernetes开发的阿里云ACK之存储管理


目录

  • ​​Kubernetes存储简介​​
  • ​​Kubernetes存储核心概念​​
  • ​​Kubernetes存储分类​​
  • ​​ACK的存储组件​​
  • ​​1、Flexvolume​​
  • ​​2、CSI​​
  • ​​3、Flexvolume和CSI的对比​​
  • ​​4、推荐使用CSI组件​​
  • ​​1)阿里云ACK的CSI​​
  • ​​2)OSS、NAS、云盘 对比​​

Kubernetes存储简介

【云原生】基于Kubernetes开发的阿里云ACK之存储管理_云原生

Kubernetes存储核心概念

【云原生】基于Kubernetes开发的阿里云ACK之存储管理_版本升级_02

Kubernetes存储分类

主要分为:​​In-tree​​​和​​Out-of-tree​

【云原生】基于Kubernetes开发的阿里云ACK之存储管理_版本升级_03

ACK的存储组件

1、Flexvolume

FlexVolume 是 Kubernetes v1.8+ 支持的一种存储插件扩展方式。类似于 CNI 插件,它需要外部插件将二进制文件放到预先配置的路径中(如 /usr/libexec/kubernetes/kubelet-plugins/volume/exec/),并需要在系统中安装好所有需要的依赖。可以想到,这是一种out-of-tree的扩展方式,不需要新增加一种存储插件,去更改k8s的源码。

2、CSI

Kubernetes 从 1.9 版本开始引入容器存储接口 Container Storage Interface(CSI)机制,用于在 Kubernetes 和外部存储系统之间建立一套标准的存储管理接口,通过该接口为容器提供存储服务。CSI 到 Kubernetes 1.10 版本升级为 Beta 版,到 Kubernetes 1.13 版本升级为 GA 版,已逐渐成熟

【云原生】基于Kubernetes开发的阿里云ACK之存储管理_版本升级_04

3、Flexvolume和CSI的对比

Flexvolume 只是给 kubernetes 这一个编排系统来使用的,而 CSI 可以满足不同编排系统的需求,比如 Mesos,Swarm。

其次 CSI 是容器化部署,可以减少环境依赖,增强安全性,丰富插件的功能。

我们知道,Flexvolume 是在 host 空间一个二进制文件,执行 Flexvolum 时相当于执行了本地的一个 shell 命令,这使得我们在安装 Flexvolume 的时候需要同时安装某些依赖,而这些依赖可能会对客户的应用产生一些影响。因此在安全性上、环境依赖上,就会有一个不好的影响。

同时对于丰富插件功能这一点,我们在 Kubernetes 生态中实现 operator 的时候,经常会通过RBAC 这种方式去调用 Kubernetes 的一些接口来实现某些功能,而这些功能必须要在容器内部实现,因此像 Flexvolume 这种环境,由于它是 host 空间中的二进制程序,就没法实现这些功能。而 CSI 这种容器化部署的方式,可以通过 RBAC 的方式来实现这些功能。
摘自:​​​javascript:void(0)​​

4、推荐使用CSI组件

【云原生】基于Kubernetes开发的阿里云ACK之存储管理_kubernetes_05

1)阿里云ACK的CSI

【云原生】基于Kubernetes开发的阿里云ACK之存储管理_kubernetes_06


注:阿里云OSS不支持不支持动态存储绑定

2)OSS、NAS、云盘 对比

【云原生】基于Kubernetes开发的阿里云ACK之存储管理_云原生_07


举报

相关推荐

0 条评论