首页 > 解决方案 > Redis 集群 HA 在 Kubernetes 中不起作用

问题描述

https://github.com/bitnami/charts/tree/master/bitnami/redis-cluster 我使用以下命令进行部署

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

redis-values.yaml

cluster:
  init: true
  nodes: 6
  replicas: 1

podDisruptionBudget:
  minAvailable: 2

persistence:
  size: 1Gi

password: "redis@pass"

redis:
  configmap: |-
    maxmemory 600mb
    maxmemory-policy allkeys-lru
    maxclients 40000
    cluster-require-full-coverage no
    cluster-allow-reads-when-down yes

sysctlImage:
  enabled: true
  mountHostSys: true
  command:
    - /bin/sh
    - -c
    - |-
      insta
      sysctl -w net.core.somaxconn=10000
      echo never > /host-sys/kernel/mm/transparent_hugepage/enabled
#      echo never > /host-sys/kernel/mm/transparent_hugepage/defrag


metrics:
  enabled: true

现在集群工作正常,但问题只是如果我将删除任何 pod 然后 redis 崩溃我开始收到 redis 错误。

这是我用于连接 quarkus 的配置:

quarkus.redis.hosts=redis://redis-cluster.redis.svc.local:6379
quarkus.redis.master-name=redis-cluster
quarkus.redis.password=redis@pass
quarkus.redis.client-type=cluster

标签: redisquarkusbitnamiredis-cluster

解决方案


不连接服务,但使用节点从

quarkus.redis.hosts=redis://redis-cluster:6379

quarkus.redis.hosts=redis://redis-cluster-0.redis-cluster-headless.redis.svc.cluster.local:6379,redis://redis-cluster-1.redis-cluster-headless.redis.svc.cluster.local:6379,redis://redis-cluster-2.redis-cluster-headless.redis.svc.cluster.local:6379,redis://redis-cluster-3.redis-cluster-headless.redis.svc.cluster.local:6379,redis://redis-cluster-4.redis-cluster-headless.redis.svc.cluster.local:6379,redis://redis-cluster-5.redis-cluster-headless.redis.svc.cluster.local:6379

主机格式如下: POD-NAME.HEADLESS-SVC-NAME.NAMESPACE.svc.cluster.local:PORT


推荐阅读