Redis PersistentVolume 定义 (redis-pv.yaml
)
apiVersion: v1
kind: PersistentVolume
metadata:
name: redis-pv-volume
spec:
capacity:
storage: 1Gi # 确保与PVC请求的大小一致
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
hostPath:
path: "/mnt/data" # 根据实际环境调整路径。注意:hostPath仅适用于单节点测试环境。
Redis PersistentVolumeClaim 定义 (redis-pvc.yaml
)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redis-pv-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi # 根据需求调整大小
storageClassName: "" # 如果有特定的StorageClass,请填写相应的名称,否则留空使用默认
Redis Deployment 和 Service 定义 (redis-deployment.yaml
)
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-deployment
spec:
selector:
matchLabels:
app: redis
replicas: 1
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis:latest
ports:
- containerPort: 6379
env:
- name: REDIS_PASSWORD # 设置环境变量
value: "Ql250205" # 替换为你想要的密码
args: ["--requirepass", "$(REDIS_PASSWORD)", "--bind", "0.0.0.0"] # 允许所有IP访问并设置密码
volumeMounts:
- name: redis-persistent-storage
mountPath: /data
volumes:
- name: redis-persistent-storage
persistentVolumeClaim:
claimName: redis-pv-claim
---
apiVersion: v1
kind: Service
metadata:
name: redis-service
spec:
ports:
- port: 6379
targetPort: 6379
nodePort: 31002 # 选择一个未被占用的NodePort
selector:
app: redis
type: 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