GlusterFS-Kubernetes云原生存储
2019獨角獸企業重金招聘Python工程師標準>>>
GlusterFS-Kubernetes云原生存儲
- 本文編譯來自?https://github.com/gluster/gluster-kubernetes
- 本文地址?https://my.oschina.net/u/2306127/blog/1827193,by openthings, 2018.06.08.
- 參考:
- Gluster官網,https://www.gluster.org/
- Gluster源碼,https://github.com/gluster/glusterfs
- Gluster文檔,https://docs.gluster.org/en/latest/Quick-Start-Guide/Quickstart/
- Gluster 4.0 & Kubernetes,?https://www.gluster.org/gluster-4-0-kubernetes/
- GlusterFS分布式文件系統的安裝配置教程,https://yq.aliyun.com/ziliao/75313
- Kubernetes部署GlusterFS
- http://yoyolive.com/2017/03/09/Kubernetes-Deploy-GlusterFS/
- Adding new glusterfs StorageClass to Kubernetes?
- https://stackoverflow.com/questions/47915443/adding-new-glusterfs-storageclass-to-kubernetes
gluster-kubernetes 為Kubernetes管理員提供了快速部署GlusterFS的一個機制,可以把GlusterFS作為原生存儲服務部署到已存的Kubernetes集群之中。這里,GlusterFS像任何其它的Kubernetes應用一樣管理和編排,這是最為快捷的釋放GlusterFS作為動態存儲提供者實現持久的GlusterFS存儲卷的方法。
項目相關組件
- Kubernetes, 容器集群管理系統。
- GlusterFS, 可伸縮存儲系統。
- heketi, GlusterFS的RESTful volume管理接口。
演示教程
社區演示和視頻在?here.
>>>?Video demo of the technology!?<<<
文檔
- Quickstart
- Setup Guide
- Hello World with GlusterFS Dynamic Provisioning
- Contact
- Release and Maintenance Policies
快速開始
如果你已經有一個現成的kubernetes集群希望使用,確認下滿足這里的要求:setup guide。
該項目包括 vagrant setup,在vagrant/?目錄下,用于在虛擬機中啟動 Kubernetes 集群進行試驗。為了運行vagrant setup, 確認下你的機器滿足下面的條件:
- 4GB of memory
- 32GB of storage minimum, 112GB recommended
- ansible
- vagrant
- libvirt or VirtualBox
在?vagrant/?目錄下,運行?./up.sh?即可啟動集群。
注意: 如果你計劃多次運行./up.sh, vagrant setup 支持緩存的軟件包和鏡像。請閱讀?vagrant directory README?獲得更多信息,幫助進行配置和使用緩存支持。
下一步,復制?deploy/?目錄到集群的master節點。
你需要提供自己的 topology file。一個示例 topology file 包含在?deploy/?目錄下 (default location that gk-deploy expects) ,可以用于vagrant libvirt setup的?topology。當創建topology file時:
-
確認topology file只列出用于heketi's的 block devices。heketi需要存取整個 block devices (e.g. /dev/sdb, /dev/vdb) ,其將被分區和格式化。
-
這里的?hostnames?數組有一點誤導,manage?將是節點的hostnames的列表,但是storage將是node上的IP addresses列表,用于后臺的存儲通訊。
如果你使用提供vagrant libvirt setup, 你將能夠:
$ vagrant ssh-config > ssh-config $ scp -rF ssh-config ../deploy master: $ vagrant ssh master [vagrant@master]$ cd deploy [vagrant@master]$ mv topology.json.sample topology.json下面的命令運行時時假定使用?administrative privileges (比如前面加上?sudo su).
然后,驗證下 Kubernetes安裝,是否所有節點都已經可用:
$ kubectl get nodes NAME STATUS AGE master Ready 22h node0 Ready 22h node1 Ready 22h node2 Ready 22h注意: 查看 Kubernetes 版本(which will change based on latest official releases) 運行?kubectl version.?
下一步,部署 heketi 和 GlusterFS,運行:
$ ./gk-deploy -g如果你已經有了一個 GlusterFS 集群,不需要?-g?選項。
該操作結束后,GlusterFS 和 heketi 應該已經安裝并準備運行。你可以設置?HEKETI_CLI_SERVER環境變量,以便?heketi-cli可以直接讀取,或者發送到?curl:
$ export HEKETI_CLI_SERVER=$(kubectl get svc/heketi --template 'http://{{.spec.clusterIP}}:{{(index .spec.ports 0).port}}')$ echo $HEKETI_CLI_SERVER http://10.42.0.0:8080$ curl $HEKETI_CLI_SERVER/hello Hello from Heketi現在的Kubernetes cluster看起來應該如下的樣子(節點取決于配置):
$ kubectl get nodes,pods NAME STATUS AGE master Ready 22h node0 Ready 22h node1 Ready 22h node2 Ready 22h NAME READY STATUS RESTARTS AGE glusterfs-node0-2509304327-vpce1 1/1 Running 0 1d glusterfs-node1-3290690057-hhq92 1/1 Running 0 1d glusterfs-node2-4072075787-okzjv 1/1 Running 0 1d heketi-3017632314-yyngh 1/1 Running 0 1d現在,你可以使用?heketi-cli?或者其它?heketi REST API (like the GlusterFS volume plugin) 客戶端來 創建/管理 volumes,然后mount這些 volumes 以驗證是否工作。在Kubernets中應用的使用例子參見:
- GlusterFS-動態卷快速應用,https://my.oschina.net/u/2306127/blog/1827417
聯系
?gluster-kubernetes 開發者 hang out in #sig-storage on the Kubernetes Slack 和 IRC channels in #gluster and #heketi at freenode network.
可以到GitHub提交 Issues 和 Pull Requests。
轉載于:https://my.oschina.net/u/2306127/blog/1827193
總結
以上是生活随笔為你收集整理的GlusterFS-Kubernetes云原生存储的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redux 简明学习
- 下一篇: Scilab 求解线性方程组示例(lin