1 资源隔离需求
对于重要的业务: 单独占用一个pod节点 防止不同业务相互影响
对于非重要的业务: 多个服务共享一个pod节点,可以扩展pod服务
2 存储问题
1 所有redis不进行持久化备份,由高可用机制来进行代替,当一个pod挂掉,另一个pod提供服务
2 所有rdb/aof备份都存放到ceph分布式存储中,当一个pod挂掉,漂移到另一个pod中,直接读取分布式存储的相关
3 故障分析机制
建立一个程序服务,模拟redis-slave,当线上出现问题时 伪装成slave,进行rdb拉取数据到本地,然后利用程序来分析相关性能问题 大概有两种角度
key角度 内存占用排行前10(big key) 访问排行前10(hot key) 操作前10( hot operation)
4 资源申请
单个POD占用内存X2 实现冗余机制
5 架构
redis-cluster ,单个pod部署cluster中的一部分,一般3个pod构成一个cluster
6 部署
通过StatefulSet部署Redis集群,使用configmap管理配置文件
7 业务访问问题
通过采用redis-proxy,redis-proxy能动态获取集群的内容,这样对外服务时,即便pod挂掉,重启导致IP变化,也不会影响对外使用,对程序来讲,就相当一个单机redis服务,推荐Cerberus和Predixy
8 待补充
redis基础篇~容器化的一些构想
原文:https://www.cnblogs.com/danhuangpai/p/14394087.html