k8s部署redis 7.0主从
apiVersion: v1
kind: ConfigMap
metadata:
name: redis-master-config
namespace: test
labels:
app: redis
data:
redis.conf: |
# Redis configuration
port 6379
bind 0.0.0.0
protected-mode yes
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfsync everysec
requirepass NgapdBEEEU #密码
masterauth NgapdBEEEU #密码
---
apiVersion: v1
kind: ConfigMap
metadata:
name: redis-slave-config
namespace: test
labels:
app: redis
data:
redis.conf: |
# Redis configuration for slave
port 6379
bind 0.0.0.0
protected-mode yes
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfsync everysec
requirepass NgapdBEEEU #密码
masterauth NgapdBEEEU #密码
replicaof redis-master 6379
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: redis-master
namespace: test
labels:
app: redis
spec:
serviceName: "redis-master"
replicas: 1
selector:
matchLabels:
app: redis
role: master
template:
metadata:
labels:
app: redis
role: master
spec:
containers:
- name: redis
image: redis:7.0
command: ["redis-server", "/etc/redis/redis.conf"]
volumeMounts:
- name: config-volume
mountPath: /etc/redis
- name: redis-data
mountPath: /data
ports:
- containerPort: 6379
name: redis
volumes:
- name: config-volume
configMap:
name: redis-master-config
items:
- key: redis.conf
path: redis.conf
- name: redis-data
persistentVolumeClaim:
claimName: redis-master-pvc
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: redis-slave
namespace: test
labels:
app: redis
spec:
serviceName: "redis-slave"
replicas: 2 # 根据需要调整副本数量
selector:
matchLabels:
app: redis
role: slave
template:
metadata:
labels:
app: redis
role: slave
spec:
containers:
- name: redis
image: redis:7.0
command: ["redis-server", "/etc/redis/redis.conf"]
volumeMounts:
- name: config-volume
mountPath: /etc/redis
- name: redis-data
mountPath: /data
ports:
- containerPort: 6379
name: redis
volumes:
- name: config-volume
configMap:
name: redis-slave-config
items:
- key: redis.conf
path: redis.conf
- name: redis-data
persistentVolumeClaim:
claimName: redis-slave-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redis-master-pvc
namespace: test
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redis-slave-pvc
namespace: test
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: redis-master
namespace: test
labels:
app: redis
spec:
clusterIP: None
ports:
- port: 6379
targetPort: 6379
selector:
app: redis
role: master
---
apiVersion: v1
kind: Service
metadata:
name: redis-slave
namespace: test
labels:
app: redis
spec:
clusterIP: None
ports:
- port: 6379
targetPort: 6379
selector:
app: redis
role: slave