redis集群部署与连接

整体架构为configMap+statefulSet+serverless 部署 sentinel模式 相比较直接直连 master 6379的好处 当master宕机可以立即调度到新的master

开启服务的时候 先开启master ->slave->sentinel

需要注意 使用configmap定义的时候 直接通过sentinel monitor redis-master-0.redis-headless.backend-space.svc.cluster.local 有可能dns 解析不了 1)运行时机,有可能再运行sentinel 读取 configMap时 master pod还没有运行 2)dns解析的结果是有延迟的,即使master 已经运行 也不能保证 通过configMap里获取的是最新的dns解析的结果 所以直接在 sentinel command里面使用命令 getent host手动获取dns解析结果 是最稳妥的

时使用secret配置文件 volumes+volumeMounts 不论是使用configMap或者secret 如果想在容器里使用指定的别名文件对象 都需要使用items进行映射 不然就默认直接使用的配置文件里的key

javascript 复制代码
 volumes:
   - name: redis-config
     secret:
       secretName: redis-secret
       defaultMode: 0400 #仅root权限可读
     # 或者configMap
     # configMap:
       # name:
       items:
         key: 定义配置文件里的key
         path: 存储在容器里的别名

redis-server默认启动的配置文件 是在 /etc/redis/redis.conf 所以 直接将secret配置的内容挂载到容器内部的/etc/redis默认启动目录 redis-server启动服务时就会直接用挂载的配置

javascript 复制代码
template:
  spec:
    containers:
      volumeMounts:
        name:redis-config #这个对应 volumes 里声明的变量
        mountPath:/etc/redis

livenessProbe 健康检查 + restartPolicy重启策略

javascript 复制代码
template:
  spec:
    restartPolicy:Always
    containers: 
      livenessProbe:
        exec:
          command:
          - sh
          - -c
          - |
          # 从 master.conf 中提取 requirepass 并去掉换行
          PASSWORD=$(grep -E '^requirepass' /etc/redis/redis.conf | awk '{print $2}' | tr -d '\n\r')
          export REDISCLI_AUTH="$PASSWORD"
          redis-cli ping
相关推荐
IT古董15 小时前
《FDE前沿部署工程师实战教程》33 - Enterprise AI Observability:从Agent Trace到全链路智能运维
数据库·人工智能
for_ever_love__15 小时前
MySQL 主从复制讲透:binlog 原理、搭建步骤与读写分离
java·数据库·mysql·binlog·读写分离·原理·主从复制
ly768916 小时前
Redis 内存优化与性能调优:编码转换、内存碎片与慢查询的定位链路
redis·性能调优·内存优化·慢查询·编码转换
我不会起名字32219 小时前
Redis 入门(三):Spring Boot 整合 Redis,RedisTemplate 实战与序列化乱码
redis·spring·工具类·jedis·lettuce
Nturmoils19 小时前
GROUP BY 先别想当然,查汇总前把规则跑清楚
数据库
神秘的猪头19 小时前
Redis 数据结构实战指南:从缓存、点赞、排行榜到消息队列
redis
最笨的羊羊19 小时前
Oceanbase数据库系列之:向量数据库核心知识
数据库·oceanbase
fish_xk20 小时前
mysql中的表的约束
数据库·mysql
谢亮_vipxieliang20 小时前
Go Channel 高级模式——从底层原理到扇出扇入实战
java·数据库·golang
ggaofeng21 小时前
自己编写邮件服务器和客户端
数据库