簡介
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