Redis PersistentVolume 定义 (redis-pv.yaml
)
apiVersion: v1
kind: PersistentVolume
metadata:name: redis-pv-volume
spec:capacity:storage: 1Gi # 确保与PVC请求的大小一致accessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainhostPath:path: "/mnt/data" # 根据实际环境调整路径。注意:hostPath仅适用于单节点测试环境。
Redis PersistentVolumeClaim 定义 (redis-pvc.yaml
)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: redis-pv-claim
spec:accessModes:- ReadWriteOnceresources:requests:storage: 1Gi # 根据需求调整大小storageClassName: "" # 如果有特定的StorageClass,请填写相应的名称,否则留空使用默认
Redis Deployment 和 Service 定义 (redis-deployment.yaml
)
apiVersion: apps/v1
kind: Deployment
metadata:name: redis-deployment
spec:selector:matchLabels:app: redisreplicas: 1template:metadata:labels:app: redisspec:containers:- name: redisimage: redis:latestports:- containerPort: 6379env:- name: REDIS_PASSWORD # 设置环境变量value: "Ql250205" # 替换为你想要的密码args: ["--requirepass", "$(REDIS_PASSWORD)", "--bind", "0.0.0.0"] # 允许所有IP访问并设置密码volumeMounts:- name: redis-persistent-storagemountPath: /datavolumes:- name: redis-persistent-storagepersistentVolumeClaim:claimName: redis-pv-claim
---
apiVersion: v1
kind: Service
metadata:name: redis-service
spec:ports:- port: 6379targetPort: 6379nodePort: 31002 # 选择一个未被占用的NodePortselector:app: redistype: NodePort
应用这些配置
创建 PersistentVolume:
kubectl apply -f redis-pv.yaml
创建 PersistentVolumeClaim:
kubectl apply -f redis-pvc.yaml
部署 Redis 并创建服务:
kubectl apply -f redis-deployment.yaml
检查 Redis Pod 和 Service 是否正常运行:
kubectl get pods
kubectl get svc