apiVersion: v1 kind: PersistentVolumeClaim metadata: name: redis-pvc namespace: redis spec: accessModes: - ReadWriteOnce storageClassName: longhorn resources: requests: storage: 5Gi --- apiVersion: v1 kind: ConfigMap metadata: name: redis-config namespace: redis data: redis.conf: | # Redis 配置 bind 0.0.0.0 protected-mode yes port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 300 # 持久化配置 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir /data # AOF 持久化 appendonly yes appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb # 内存管理 maxmemory 2gb maxmemory-policy allkeys-lru # 日志 loglevel notice logfile "" --- apiVersion: apps/v1 kind: Deployment metadata: name: redis namespace: redis spec: replicas: 1 selector: matchLabels: app: redis template: metadata: labels: app: redis spec: containers: - name: redis image: redis:7-alpine command: - redis-server - /etc/redis/redis.conf ports: - containerPort: 6379 name: redis volumeMounts: - name: data mountPath: /data - name: config mountPath: /etc/redis resources: requests: memory: "256Mi" cpu: "100m" limits: memory: "2Gi" cpu: "1000m" livenessProbe: tcpSocket: port: 6379 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: exec: command: - redis-cli - ping initialDelaySeconds: 5 periodSeconds: 5 volumes: - name: data persistentVolumeClaim: claimName: redis-pvc - name: config configMap: name: redis-config --- apiVersion: v1 kind: Service metadata: name: redis namespace: redis spec: selector: app: redis ports: - port: 6379 targetPort: 6379 protocol: TCP type: ClusterIP