gluster-kubernetes 爲Kubernetes管理員提供了快速部署GlusterFS的一個機制,能夠把GlusterFS做爲原生存儲服務部署到已存的Kubernetes集羣之中。這裏,GlusterFS像任何其它的Kubernetes應用同樣管理和編排,這是最爲快捷的釋放GlusterFS做爲動態存儲提供者實現持久的GlusterFS存儲卷的方法。node
社區演示和視頻在 here.git
>>> Video demo of the technology! <<<github
若是你已經有一個現成的kubernetes集羣但願使用,確認下知足這裏的要求:setup guide。json
該項目包括 vagrant setup,在vagrant/
目錄下,用於在虛擬機中啓動 Kubernetes 集羣進行試驗。爲了運行vagrant setup, 確認下你的機器知足下面的條件:數組
在 vagrant/
目錄下,運行 ./up.sh
便可啓動集羣。緩存
注意: 若是你計劃屢次運行./up.sh, vagrant setup 支持緩存的軟件包和鏡像。請閱讀 vagrant directory README 得到更多信息,幫助進行配置和使用緩存支持。ssh
下一步,複製 deploy/
目錄到集羣的master節點。curl
你須要提供本身的 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) ,其將被分區和格式化。ide
這裏的 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中應用的使用例子參見:
gluster-kubernetes 開發者 hang out in #sig-storage on the Kubernetes Slack 和 IRC channels in #gluster and #heketi at freenode network.
能夠到GitHub提交 Issues 和 Pull Requests。