IBM Cloud Kubernetes Service - k8s外挂云存储性能测试(一)文件和块存储

k8s数据存储的方式很多:临时存储(emptyDir),半持久化存储(hostpath),持久化存储(文件、块、对象存存储等)。公有云各厂商几乎都支持云存储服务集成k8s托管,k8s系统本身通过两个概念PersistentVolume(PV)和 PersistentVolumeClaim(PVC)实现存储持久化的生命周期管理(申请、保留、删除、废弃等),pod根据需求向集群系统申请数据卷并使用,如果pod一旦释放,应用消失,数据卷相应分离解绑,数据会保留下来,在使用中pod以及应用对存储的后端基础架构并无感知。 这种设计很好地把应用和数据做了解藕。 至于存储资源的底层是选择ceph、portwx、弹性云存储、云对象存储等等,这就取决于业务具体需求和厂商的支持了。
IBM Cloud Kubernetes Service - k8s外挂云存储性能测试(一)文件和块存储_第1张图片
闲话少说,切入今天的主题,既然有很多后端选择,用户在试用一款k8s集群产品,存储持久化以及应用层面的读写能力是必测一关,这里我们以ibm cloud kubernetes service为例,看看IBM云上的三种常见外挂存储的测试方法以及性能比较。

大致分为三个步骤:

  1. 创建K8S集群并通过kubectl连接使用 (部署在日本东京)
  2. 确认和安装IBM云存储k8s供应插件(CFS、CBS、COS部署在东京)
  3. dbench(fio)测试上述三种存储卷

1. k8s集群创建、连接和使用
登陆cloud.ibm.com, 在商品目录里搜索关键字“kubernetes”,进入服务创建向导,本次测试将用标准资费(免费集群的worker节点只有一个,无法满足测试要求),可以注意到的是ibm k8s的在线版本很新,选择最近的稳定版本1.17.6
IBM Cloud Kubernetes Service - k8s外挂云存储性能测试(一)文件和块存储_第2张图片
接下来选择经典基础架构(覆盖全),vpc基础架构在六大区(东京,悉尼,法兰克福,伦敦,华盛顿,达拉斯)也已完全就绪,考虑vpc高可用区集群的worker成本,在单区开一套经典做测试性价比会高一点。
IBM Cloud Kubernetes Service - k8s外挂云存储性能测试(一)文件和块存储_第3张图片
最后我们设置worker pool,选择三个2c*4g虚拟机作为工作节点,若考虑安全可以打开节点磁盘加密(ibm这点真的没话说),定义完集群名字,点创建
IBM Cloud Kubernetes Service - k8s外挂云存储性能测试(一)文件和块存储_第4张图片
大约五六分钟,集群初始化完成,进入“Normal”状态
IBM Cloud Kubernetes Service - k8s外挂云存储性能测试(一)文件和块存储_第5张图片
点击创建好的集群,进入“访问”,参考步骤在自己的笔记本上安装ibmcloud cli (k8s相关工具比如kubectl,docker等如果当前系统没有,会一并安装)
IBM Cloud Kubernetes Service - k8s外挂云存储性能测试(一)文件和块存储_第6张图片

danws-MacBook-Pro:k8s-playground danw$ ibmcloud login --sso -a cloud.ibm.com -r jp-tok -g danw-group
danws-MacBook-Pro:k8s-playground danw$ ibmcloud ks cluster config --cluster bro62jit0fjj42dqsh7g
danws-MacBook-Pro:k8s-playground danw$ export KUBECONFIG=/Users/danw/.bluemix/plugins/container-service/clusters/bro62jit0fjj42dqsh7g/kube-config-tok05-demo-k8s-tok05.yml

也可将集群配置文件添加到~/.bash_profile中,
在这里插入图片描述
测试连接成功!

danws-MacBook-Pro:k8s-playground danw$ k get nodes -o wide
NAME           STATUS   ROLES    AGE   VERSION       INTERNAL-IP    EXTERNAL-IP     OS-IMAGE             KERNEL-VERSION       CONTAINER-RUNTIME
10.193.33.31   Ready    <none>   26m   v1.17.6+IKS   10.193.33.31   165.192.96.2    Ubuntu 18.04.4 LTS   4.15.0-101-generic   containerd://1.3.4
10.193.33.33   Ready    <none>   26m   v1.17.6+IKS   10.193.33.33   165.192.96.12   Ubuntu 18.04.4 LTS   4.15.0-101-generic   containerd://1.3.4
10.193.33.44   Ready    <none>   27m   v1.17.6+IKS   10.193.33.44   165.192.96.7    Ubuntu 18.04.4 LTS   4.15.0-101-generic   containerd://1.3.4

2. 安装IBM Cloud云存储插件
a. IBM Cloud File Storage
默认file stroage class(存储插件)在集群创建过程中预装好了,可直接使用

danws-MacBook-Pro:k8s-playground danw$ k get storageclasses | grep file
default                    ibm.io/ibmc-file   Delete          Immediate           false                  37m
ibmc-file-bronze           ibm.io/ibmc-file   Delete          Immediate           false                  37m
ibmc-file-bronze-gid       ibm.io/ibmc-file   Delete          Immediate           false                  37m
ibmc-file-custom           ibm.io/ibmc-file   Delete          Immediate           false                  37m
ibmc-file-gold (default)   ibm.io/ibmc-file   Delete          Immediate           false                  37m
ibmc-file-gold-gid         ibm.io/ibmc-file   Delete          Immediate           false                  37m
ibmc-file-retain-bronze    ibm.io/ibmc-file   Retain          Immediate           false                  37m
ibmc-file-retain-custom    ibm.io/ibmc-file   Retain          Immediate           false                  37m
ibmc-file-retain-gold      ibm.io/ibmc-file   Retain          Immediate           false                  37m
ibmc-file-retain-silver    ibm.io/ibmc-file   Retain          Immediate           false                  37m
ibmc-file-silver           ibm.io/ibmc-file   Delete          Immediate           fal

你可能感兴趣的:(linux,kubernetes,云存储)