如何在RedisInsight的K8s部署YAML中为目标Redis主机传递环境变量
结论
你当前使用RedisInsight 1.7.0版本的配置方案不可行,该版本原生不支持REDIS_HOSTS环境变量的自动识别,所有Redis连接信息默认存储在/db路径下的SQLite数据库中,你传入的该环境变量不会被程序读取生效。
可行替代方案
- 方案1:升级RedisInsight镜像到2.10及以上版本,新版本内置了预注册数据库连接的环境变量支持,你可以将Deployment的env部分修改为如下格式即可实现无手动操作自动注入Redis连接:
env: - name: RIHOST value: xxx.yyy.zzz - name: RIL_AUTO_REGISTER_DATABASES value: '[{"host":"redishost1.example.com","port":6379,"name":"业务Redis1"},{"host":"redishost2.example.com","port":6379,"name":"业务Redis2"}]'
该方案不需要额外添加任何基础设施组件,完全符合你的需求。
- 方案2:如果必须保留1.7.0版本使用,可新增一个轻量Init容器,在主容器启动前提前向
/db路径下的SQLite数据库写入你需要的Redis连接信息,Init容器可直接使用带sqlite工具的alpine镜像实现,无额外外部依赖。 - 额外优化建议:你当前配置中
/db路径挂载的是emptyDir存储,Pod重建后所有已添加的连接信息都会丢失,建议将该存储替换为PVC持久化卷,避免连接信息丢失。
内容的提问来源于stack exchange,提问作者Oguzhan Aygun
相关产品推荐
相关产品推荐

