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

Kubernetes集群中同时运行两组Redis关联部署时出现间歇性连接失败

Kubernetes中Redis与工作负载间歇性连接问题

环境与问题概述

  • 集群内管理四个部署:
    • Laravel队列工作负载:标签laravel-kube-worker
    • Django队列工作负载:标签django-kube-worker
    • Laravel Redis实例:标签laravel-kube-worker-redis
    • Django Redis实例:标签django-kube-worker-redis
  • 预期行为:Laravel工作负载Pod连接对应Redis处理队列任务,Django工作负载Pod同理连接自身对应Redis
  • 异常表现:单独运行Laravel或Django部署时一切正常,队列可正常填充与处理;同时运行两组部署时,工作负载Pod会间歇性无法连接到各自的Redis Pod,连接状态不稳定(约15秒内时断时续)
  • 已排查情况:两组Redis配置无冲突,Pod、Service、StatefulSet状态均正常,无Redis Pod强制重启记录

相关配置文件

Laravel Redis Service配置(括号内为Django Redis对应配置)

apiVersion: v1
kind: Service
metadata:
  name: laravel-kube-worker-redis  (( django-kube-worker-redis ))
  labels:
    tier: backend
    layer: redis
spec:
  ports:
    - port: 6379  (( 6380 ))
      targetPort: 6379  (( 6380 ))
      nodePort: 32379  (( 32380 ))
      protocol: TCP
  selector:
    tier: backend
    layer: redis
  type: NodePort

Laravel Redis持久化卷声明(括号内为Django Redis对应配置)

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: laravel-kube-worker-redis  (( django-kube-worker-redis ))
spec:
  storageClassName: do-block-storage 
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

Laravel Redis有状态集(括号内为Django Redis对应配置)

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: laravel-kube-worker-redis  (( django-kube-worker-redis ))
  labels:
    tier: backend
    layer: redis
spec:
  serviceName: laravel-kube-worker-redis  (( django-kube-worker-redis ))
  selector:
    matchLabels:
      tier: backend
      layer: redis
  replicas: 1
  template:
    metadata:
      labels:
        tier: backend
        layer: redis
    spec:
      containers:
        - name: redis
          image: redis:alpine
          command: ["redis-server", "--appendonly", "yes", "--bind", "0.0.0.0"]
          ports:
            - containerPort: 6379  (( 6380 ))
              name: web
          volumeMounts:
            - name: redis-aof
              mountPath: /data
          resources:
            requests:
              memory: "1048Mi" # Set the minimum memory request
            limits:
              memory: "4096Mi" # Set the maximum memory limit
      volumes:
        - name: redis-aof
          persistentVolumeClaim:
            claimName: laravel-kube-worker-redis  (( django-kube-worker-redis ))

关键说明

  • Django Redis的所有标签键值与Laravel Redis完全不同
  • Laravel工作负载Pod通过laravel-kube-worker-redis:6379连接对应Redis环境,Django工作负载Pod通过django-kube-worker-redis:6380连接自身Redis环境

内容的提问来源于stack exchange,提问作者Delano van der Waal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 18:29:51