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

即可。

 

### 使用 Helm 部署 Redis 实现高可用架构 #### 1. 安装 Redis Operator 为了简化 Redis 集群部署和管理,在云原生环境中推荐使用 Redis Operator。通过 Helm Chart 可以方便地安装 Redis Operator,从而自动化管理 Redis 集群的生命周期[^1]。 ```bash helm repo add bitnami https://charts.bitnami.com/bitnami helm install redis-operator bitnami/redis-cluster --set operator.create=true ``` #### 2. 创建自定义配置文件 `values.yaml` 创建一个名为 `values.yaml` 的文件来定制化 Redis Cluster 的设置,确保启用了持久卷(PV),以便于数据的安全存储并防止意外的数据丢失。以下是示例配置: ```yaml cluster: enabled: true replicas: 3 # 设置副本数量以提高可靠性 persistence: enabled: true size: 8Gi metrics: enabled: true service: type: ClusterIP resources: requests: memory: "512Mi" cpu: "500m" limits: memory: "1Gi" cpu: "1000m" ``` 此配置不仅设置了集群模式下的节点数为三,还指定了每个 Pod 所需最小内存与 CPU 资源请求量以及最大限制值;同时开启了性能指标收集功能便于后续监控分析。 #### 3. 应用配置并启动 Redis Cluster 利用上述准备好的 `values.yaml` 文件作为参数传递给 Helm 命令行工具完成最终部署操作: ```bash helm install my-release \ --namespace default \ -f ./path/to/values.yaml \ bitnami/redis-cluster ``` 这一步骤会依据指定命名空间(default)读取本地路径下(`./path/to`)保存着之前编辑过的 YAML 文档内容来进行实际环境中的应用实例构建过程。 #### 4. 验证部署状态 可以通过 kubectl 工具查询新创建的服务及其关联 Pods 是否正常运行: ```bash kubectl get svc,pods -l app.kubernetes.io/name=redis-cluster,app.kubernetes.io/instance=my-release ``` 如果一切顺利,则可以看到预期数量的工作进程处于就绪状态,并且能够访问到由这些组件构成的一个完整的分布式键值数据库服务系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值