k8s部署六节点redis 集群
1.创建 redis 配置文件,转换为configMap
cat > redis.conf << EOF
protected-mode no
appendonly yes
cluster-enabled yes
cluster-config-file /var/lib/redis/nodes.conf
cluster-node-timeout 5000
dir /var/lib/redis
port 6379
EOF
kubectl create configmap redis-conf --from-file=redis.conf -n 名称空间
2.创建pvc 动态生成 pv
cat > redis-pvc.yaml << EOF
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: redis-pro
spec:
accessModes: ["ReadWriteMany"]
resources:
requests:
storage: 1Gi
storageClassName: redis-pro
EOF
3.创建svc
cat > redis-svc.yaml << EOF
apiVersion: v1
kind: Service
metadata:
name: redis-service
labels:
app: redis
spec:
ports:
- name: redis-port
port: 6379
clusterIP: None
selector:
app: redis
appCluster: redis-cluster
EOF
4.创建 StatefulSet
cat > redis-StatefulSet.yaml << EOF
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: redis-app
spec:
serviceName: "redis-service"
replicas: 6
selector:
matchLabels:
app: redis
appCluster: redis-cluster
template:
metadata:
labels:
app: redis
appCluster: redis-cluster
spec:
containers:
- name: redis
image: redis
imagePullPolicy: IfNotPresent
command: ["/bin/bash", "-ce", "tail -f /dev/null"]
command: ["redis-server"]
args:
- "/etc/redis/redis.conf"
- "--protected-mode"
- "no"
ports:
- name: redis
containerPort: 6379
protocol: "TCP"
- name: cluster
containerPort: 16379
protocol: "TCP"
volumeMounts:
- name: "redis-conf"
mountPath: "/etc/redis"
- name: "redis-data"
mountPath: "/var/lib/redis"
volumes:
- name: "redis-conf"
configMap:
name: "redis-conf"
items:
- key: "redis.conf"
path: "redis.conf"
volumeClaimTemplates:
- metadata:
name: redis-data
spec:
accessModes: [ "ReadWriteMany" ]
storageClassName: redis-pro
resources:
requests:
storage: 1Gi
EOF
5.使用redis-trib工具创建redis集群,通过docker构建
docker pull inem0o/redis-trib
kubectl describe pod redis-app | grep IP #查看下每个 pod 的 ip
docker run --rm -ti inem0o/redis-trib create --replicas 1 172.16.43.41:6379 172.16.43.40:6379 172.16.43.18:6379 172.16.43.20:6379 172.16.43.52:6379 172.16.43.53:6379
// 在开启集群后,redis-cli用普通用户登录无法操作集群中的数据,需要加上-c 用集群模式登录才可进行操作。
标题:k8s部署六节点redis 集群
作者:lipl666
地址:http://www.lipeilong.space:8088/articles/2025/09/04/1756973834881.html