Last updated
Last updated
本文将指导您如何在Kubernetes集群上安装作为持久化存储。
我们将使用的方式来安装OpenEBS,安装之前需要先确认您的节点上已经安装了iSCSI。
OpenEBS依赖与iSCSI做存储管理,因此需要先确保您的集群上已有安装openiscsi。
注意:如果您使用kubeadm,容器方式安装的kublet,那么其中会自带iSCSI,不需要再手动安装,如果是直接使用二进制形式在裸机上安装的kubelet,则需要自己安装iSCSI。
iSCSI( Internet Small Computer System Interface 互联网小型计算机系统接口)是一种基于TCP/IP 的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。SCSI 结构基于C/S模式,其通常应用环境是:设备互相靠近,并且这些设备由SCSI 总线连接。
OpenEBS需要使用iSCSI作为存储协议,而CentOS上默认是没有安装该软件的,因此我们需要手动安装。
iSCSI中包括两种类型的角色:
target:用来提供存储(server)
initiator:使用存储的客户端(client)
下图在Kubernetes中使用iSCSI的架构图(图片来源:http://rootfs.github.io/iSCSI-Kubernetes/
)。
安装iSCSI服务十分简单,不需要额外的配置,只要安装后启动服务即可。
在每个node节点上执行下面的命令:
使用Operator运行OpenEBS服务:
使用默认或自定义的storageclass:
用到的镜像有:
openebs/m-apiserver:0.5.1-RC1
openebs/openebs-k8s-provisioner:0.5.1-RC2
openebs/jiva:0.5.1-RC1
openebs/m-exporter:0.5.0
下面使用OpenEBS官方文档中的示例,安装Jenkins测试
查看PV和PVC
查看Jenkins pod
启动成功。Jenkins配置使用的是NodePort方式访问,现在访问集群中任何一个节点的Jenkins service的NodePort即可。
OpenEBS的存储策略使用StorageClaass实现,包括如下的StorageClass:
openebs-cassandra
openebs-es-data-sc
openebs-jupyter
openebs-kafka
openebs-mongodb
openebs-percona
openebs-redis
openebs-standalone
openebs-standard
openebs-zk