Helm 部署配置redis集羣+glusterfs分佈式存儲應用

1、helm的安裝不做贅述,網上有很多教程。

2、helm添加Chart庫

添加微軟庫

helm repo add stable http://mirror.azure.cn/kubernetes/charts/
目前我本地的Chart庫如下

添加了之後,查詢redis結果如下

helm search repo redis -l 可以查看歷史版本

3、

拉取部署文件: helm pull stable/redis-ha

不指定標籤時默認拉取最新版本,拉取的是一個壓縮包

解壓

tar zxf redis-ha-4.4.4.tgz

就會生成 redis-ha 的文件夾

4、

cd redis-ha

ls

可以通過vs code打開,看到格式如下

同其他自定義服務的部署一樣,部署文件中的變量值都保存在 values.yaml中,所以我們在部署應用時只需要更改values.yaml文件即可。

我只改了這裏的值,一主一從即可。

直接使用helm 命令安裝

helm install redis . -f  /values.yaml -n middleware-test

創建後查看:

創建了兩個pod,兩個pvc 和一個statefulset控制器。

因爲一主一從,所以這裏根據redis chart的配置,自動創建了兩個pvc。

5、redis的對外訪問

apiVersion: v1
kind: Service
metadata:
  name: redis-ha-service	#名稱:隨意
  labels:
    app: redis			#部署的 redis-ha 名稱
spec:
  ports:
  - name: redis			#部署的 redis-ha 名稱
    protocol: "TCP"			#TCP 協議
    port: 26379				
    targetPort: 6379		
    nodePort: 30379			#此爲外部連接k8s redis-ha 服務的端口
  selector:
    statefulset.kubernetes.io/pod-name: redis-redis-ha-server-0
  type: NodePort

創建一個 NodePort 形式的service,提供對外訪問。

kubectl apply -f service.yaml -n **

此時,可以通過 任意一個 master主機IP+30379 訪問到redis

6、redis 的 upgrade

比如修改了 values.yaml中的 replicas 數量

helm upgrade redis .

7、其他命令

查看歷史方便回滾:helm -n redis history

刪除:helm uninstall redis

8、

遇到的問題

網上的教程,都是建議在k8s中部署nfs,配合部署redis。

我們公司部署的是 glusterfs 分佈式存儲,所以有些配置項要做調整,才能正常使用。

通過查看redis的各個配置文件,redis-ha-statefulset.yaml 這個文件中有持久化相關配置

取值是 values.yaml 中的persistentVolume 下的 storageClass。

通過下面的命令,可查到,我們公司的glusterfs 搭建時,已經安裝好了 storageclass的,可以直接使用。

所以我改了 values.yaml 中的配置項

即可。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章