You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为K8s部署的Redis服务及客户端配置密码认证方案咨询

K8s环境下Redis添加密码认证及客户端适配实践

1. 安全存储Redis密码

用K8s Secret存储密码,避免明文泄露:

# 生成随机强密码(推荐)
openssl rand -hex 16
# 创建Secret
kubectl create secret generic redis-auth --from-literal=redis-password=your_secure_random_password

2. 更新Redis Deployment配置

编辑Redis的Deployment资源:

kubectl edit deployment redis

做两处修改:

  • 注入密码环境变量:在容器的env字段中添加Secret引用
    spec:
      template:
        spec:
          containers:
          - name: redis
            env:
            - name: REDIS_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: redis-auth
                  key: redis-password
    
  • 开启密码认证:修改容器启动命令,添加密码参数(或修改挂载的Redis配置文件)
    如果用命令行参数:
    command:
      - redis-server
      - --requirepass $(REDIS_PASSWORD)
    
    如果用ConfigMap挂载的配置文件,在redis.conf中添加:
    requirepass $(REDIS_PASSWORD)
    

3. 客户端/业务系统同步适配

所有依赖Redis的业务系统必须更新连接配置:

  • Python(redis-py):
    import redis
    r = redis.Redis(host="redis-service", port=6379, password="your_secure_random_password")
    
  • Java(Jedis):
    Jedis jedis = new Jedis("redis-service", 6379);
    jedis.auth("your_secure_random_password");
    
  • 若业务用配置中心管理参数,同步将Redis密码配置项指向K8s Secret的对应值

4. 灰度切换与验证

  • 先滚动更新部分Redis Pod,验证带密码认证的实例正常启动:
    kubectl rollout status deployment redis
    
  • 逐步切换部分业务流量到新实例,观察业务日志无认证报错
  • 全量更新完成后,手动验证认证有效性:
    kubectl exec -it <redis-pod-name> -- redis-cli
    > ping  # 返回NOAUTH,需先认证
    > auth your_secure_random_password
    > ping  # 返回PONG则认证生效
    

5. 回滚预案

如果客户端适配出现异常:

  1. 立即回滚Redis Deployment到无密码版本:
    kubectl rollout undo deployment redis
    
  2. 临时恢复业务系统的Redis配置为无密码状态,排查适配问题后再重新执行切换流程

内容的提问来源于stack exchange,提问作者Batman 21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 07:03:14