天天看點

Kubernetes使用Glusterfs做存儲持久化GlusterFS用戶端使用GlusterfsKubernetes配置使用glusterfs:

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檔案

至此部署完成。

繼續閱讀