glusterfs是一個開源的橫向擴充檔案系統。這些示例提供有關如何允許容器使用glusterfs卷的資訊。
該示例假定您已經設定了glusterfs伺服器叢集,并且已準備好在容器中使用正在運作的glusterfs卷。
先決條件
kubernetes叢集已經搭建好。
glusterfs叢集的安裝
環境介紹
os系統:centos 7.x
glusterfs兩個節點:192.168.22.21,192.168.22.22
安裝glusterfs
我們直接在實體機上使用yum安裝,如果你選擇在kubernetes上安裝,請參考:
https://github.com/gluster/gluster-kubernetes/blob/master/docs/setup-guide.md
配置 glusterfs
配置 volume
glusterfs 幾種volume 模式說明
1)、預設模式,既dht, 也叫 分布卷: 将檔案已hash算法随機分布到 一台伺服器節點中存儲。
指令格式:gluster volume create test-volume server1:/exp1 server2:/exp2
2)、複制模式,既afr, 建立volume 時帶 replica x 數量: 将檔案複制到 replica x 個節點中。
指令格式:gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2
3)、條帶模式,既striped, 建立volume 時帶 stripe x 數量: 将檔案切割成資料塊,分别存儲到 stripe x 個節點中 ( 類似raid 0 )。
指令格式:gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2
4)、分布式條帶模式(組合型),最少需要4台伺服器才能建立。 建立volume 時 stripe 2 server = 4 個節點: 是dht 與 striped 的組合型。
指令格式:gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
5)、分布式複制模式(組合型), 最少需要4台伺服器才能建立。 建立volume 時 replica 2 server = 4 個節點:是dht 與 afr 的組合型。
指令格式:gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
6)、條帶複制卷模式(組合型), 最少需要4台伺服器才能建立。 建立volume 時 stripe 2 replica 2 server = 4 個節點: 是 striped 與 afr 的組合型。
指令格式:gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
7)、三種模式混合, 至少需要8台 伺服器才能建立。 stripe 2 replica 2 , 每4個節點 組成一個 組。
指令格式:gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6 server7:/exp7 server8:/exp8
啟動volume
glusterfs調優
實體機上使用gluster的volume
官方文檔對配置過程進行了介紹:https://github.com/kubernetes/examples/blob/master/staging/volumes/glusterfs/readme.md
注:以下操作在kubernetes叢集中任意一個可以執行kubectl的master上操作!
第一步在kubernetes中建立glusterfs端點定義
這是glusterfs-endpoints.json的片段:
備:該subsets字段應填充glusterfs叢集中節點的位址。可以在port字段中提供任何有效值(從1到65535)。
配置 service
我們還需要為這些端點建立服務,以便它們能夠持久存在。我們将在沒有選擇器的情況下添加此服務,以告知kubernetes我們想要手動添加其端點
##建立服務
配置persistentvolume(簡稱pv)
建立glusterfs-pv.yaml檔案,指定storage容量和讀寫屬性
然後執行:
配置persistentvolumeclaim(簡稱pvc)
建立glusterfs-pvc.yaml檔案,指定請求資源大小
執行:
部署應用挂載pvc
以建立nginx,把pvc挂載到容器内的/usr/share/nginx/html檔案夾為例:
nginx_deployment.yaml檔案如下
再回到glusterfs的伺服器的資料目錄/opt/gfs_data檢視是否有123.txt檔案
至此部署完成。