简介
OpenEBS是一款使用Go语言编写的基于容器的块存储开源软件。OpenEBS使得在容器中运行关键性任务和需要数据持久化的负载变得更可靠。
OpenEBS由CloudByte研发,这是一家专业做容器化存储的公司,OpenEBS是其一款开源产品,CloudByte将其在企业级容器存储的经验付诸到该项目中。这个项目的愿景也很简单,就是让需要持久化存储的工作负载中的存储服务能够直接集成在环境中,存储服务可以自动管理,将存储的细节隐藏起来,就像存储系统是另一套基础架构一样。
使用OpenEBS,你可以将有持久化数据的容器,像对待其他普通容器一样来对待。OpenEBS本身也是通过容器来部署的,支持Kubernetes、Swarm、Mesos、Rancher编排调度,存储服务可以分派给每个pod、应用程序、集群或者容器级别,包括:
- 跨节点的数据持久化
- 跨可用区和云厂商的数据同步
- 使用商业硬件和容器引擎来提供高可扩展的块存储
- 与容器编排引擎集成,开发者的应用程序可以自动的配置OpenEBS
- 基于CloudByte在BSD的容器化经验,为用户提供OpenEBS的QoS保证
安装
前提:k8s集群已经搭建好。
确认 master 节点是否有 Taint,如下看到 master 节点有 Taint。
kubectl describe node k8s-master | grep Taint

去掉 master 节点的 Taint:
kubectl taint nodes k8s-master node-role.kubernetes.io/master:NoSchedule-
创建 OpenEBS 的 namespace,OpenEBS 相关资源将创建在这个 namespace 下
kubectl create ns openebs
安装openebs
kubectl apply -f https://openebs.github.io/charts/openebs-operator-1.5.0.yaml
查看安装进度
kubectl get all -n openebs

设置openebs为默认存储
kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
给master重新打上污点:
kubectl taint nodes k8s-master node-role.kubernetes.io/master=:NoSchedule
查看默认存储
kubectl get sc
