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 中的配置项

即可。

 

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