K8S 部署 Redis-Cluster 集群

8 篇文章 0 订阅

本文使用 bitnami 镜像部署 redis-cluster

官方文档:https://github.com/bitnami/charts/tree/main/bitnami/redis-cluster

添加 bitnami 仓库

helm repo add bitnami https://charts.bitnami.com/bitnami

自定义 values.yaml

  • storageClass:集群的存储类,可以参考文章 k8s 安装本地 storageClass 或者
    K8S 集群使用 NFS 做 storageclass
  • persistence.size:设置持久化存储大小,注意 persistence.enabled 必须为 true
  • metrics.enabled:开启监控,默认为 false
  • service.type:设置 NodePort,方便集群外调用
  • service.nodePorts.redis:设置集群调用端口
global:
  storageClass: "nfs-client"
persistence:
  size: 4Gi
metrics:
  enabled: true
service:
  type: NodePort
  nodePorts:
    redis: 30008

开始部署,例子是部署在名叫 redis 的命名空间里

helm install redis-cluster bitnami/redis-cluster -n redis -f values.yaml

部署成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

持久化存储每个为 persistence.size 设置的 4G
在这里插入图片描述

获取 Redis-Cluster 密码的两种方式

  1. 命令获取
kubectl get secret --namespace "redis" redis-cluster -o jsonpath="{.data.redis-password}" | base64 --decode
  1. rancher 界面获取
    在这里插入图片描述
    在这里插入图片描述

连接成功
在这里插入图片描述

注意:选择其他 db 时会报错

ERR SELECT is not allowed in cluster mode

因为集群客户端是不支持多数据库db的,只有一个数据库默认是 SELECT 0;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Kubernetes部署 Redis Cluster 集群,可以按照以下步骤进行: 1. 创建 Redis ConfigMap 首先,需要创建一个 Redis 配置文件 ConfigMap。可以使用以下命令创建: ``` kubectl create configmap redis-conf --from-file=redis.conf ``` 其中,`redis.conf` 是 Redis 配置文件的名称。可以根据实际情况进行修改。 2. 创建 Redis StatefulSet 接下来,可以创建 Redis StatefulSet。可以使用以下 YAML 文件作为模板: ``` apiVersion: apps/v1 kind: StatefulSet metadata: name: redis-cluster spec: serviceName: redis-cluster replicas: 6 selector: matchLabels: app: redis-cluster template: metadata: labels: app: redis-cluster spec: containers: - name: redis image: redis:6.0.9 ports: - containerPort: 6379 name: client - containerPort: 16379 name: gossip volumeMounts: - name: config mountPath: /usr/local/etc/redis/redis.conf subPath: redis.conf command: - sh - -c - | if [ -n "${POD_NAME}" ]; then sed -i "s/%cluster-name%/redis-cluster/g" /usr/local/etc/redis/redis.conf sed -i "s/%node-name%/${POD_NAME}/g" /usr/local/etc/redis/redis.conf fi volumes: - name: config configMap: name: redis-conf volumeClaimTemplates: - metadata: name: data spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi ``` 在上述 YAML 文件中,`replicas` 字段指定了 Redis 集群的节点数,`volumeClaimTemplates` 字段指定了每个节点的数据卷大小。另外,还需要注意以下几点: - `serviceName` 字段需要与 `metadata.name` 字段相同。 - `selector.matchLabels` 字段需要与 `metadata.labels` 字段相同。 - `command` 字段用于修改 Redis 配置文件中的节点名称和集群名称。 3. 创建 Redis Service 最后,需要创建 Redis Service。可以使用以下 YAML 文件作为模板: ``` apiVersion: v1 kind: Service metadata: name: redis-cluster labels: app: redis-cluster spec: ports: - name: client port: 6379 targetPort: 6379 - name: gossip port: 16379 targetPort: 16379 clusterIP: None selector: app: redis-cluster ``` 在上述 YAML 文件中,`clusterIP` 字段需要设置为 `None`,以便创建一个 Headless Service,让每个 Redis 节点可以通过 DNS 解析到自己的 IP 地址。 4. 部署 Redis Cluster 完成以上步骤后,可以使用以下命令部署 Redis Cluster: ``` kubectl apply -f redis-cluster.yaml ``` 其中,`redis-cluster.yaml` 是包含 Redis StatefulSet 和 Redis Service 的 YAML 文件。可以根据实际情况进行修改。 部署完成后,可以使用以下命令查看 Redis Cluster 的状态: ``` kubectl exec -it redis-cluster-0 -- redis-cli cluster nodes ``` 其中,`redis-cluster-0` 是 Redis Cluster 中的一个节点名称。可以根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值