Kubernetes容器化 - Redis
这里配置为单节点配置。
第一步,创建ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: redis-demo-config
namespace: default
data:
redis.conf: |
daemonize no
port 6379
tcp-backlog 511
bind 0.0.0.0
protected-mode no
timeout 0
tcp-keepalive 300
loglevel notice
maxmemory 4G
maxmemory-policy volatile-lru
maxmemory-samples 5
maxmemory-eviction-tenacity 10
requirepass yourpwd
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
第二步,创建Service
apiVersion: v1
kind: Service
metadata:
name: redis-demo
namespace: default
labels:
project: redis-demo
spec:
selector:
project: redis-demo
ports:
- name: redis
port: 6379
protocol: TCP
clusterIP: None
第三步,创建持久化存储
apiVersion: v1
kind: PersistentVolume
metadata:
name: redis-demo-pv
labels:
project: redis-demo-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
csi:
driver: nasplugin.csi.alibabacloud.com
volumeHandle: redis-demo-pv
volumeAttributes:
server: "nasid.cn-hangzhou.nas.aliyuncs.com"
path: "/redis-demo"
mountOptions:
- nolock,tcp,noresvport
- vers=3
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: redis-demo-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
selector:
matchLabels:
project: redis-demo-pv
第四步,编写StatefulSet
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: redis-demo
namespace: default
labels:
project: redis-demo
spec:
serviceName: redis-demo
replicas: 1
selector:
matchLabels:
project: redis-demo
template:
metadata:
labels:
project: redis-demo
spec:
containers:
- name: redis
image: redis:6.2.4
imagePullPolicy: IfNotPresent
command: ["/bin/sh", "-c", "/usr/local/bin/redis-server /usr/local/etc/redis/redis.conf"]
ports:
- containerPort: 6379
name: redis
protocol: TCP
readinessProbe:
tcpSocket:
port: 6379
initialDelaySeconds: 5
timeoutSeconds: 15
periodSeconds: 5
livenessProbe:
tcpSocket:
port: 6379
initialDelaySeconds: 30
timeoutSeconds: 15
periodSeconds: 15
volumeMounts:
- name: redis-demo-config
mountPath: /usr/local/etc/redis/redis.conf
subPath: redis.conf
- name: redis-demo-pv
mountPath: /data
volumes:
- name: redis-demo-config
configMap:
name: redis-demo-config
- name: redis-demo-pv
persistentVolumeClaim:
claimName: redis-demo-pvc
-- EOF --
最后更新于:
2024-08-17 14:44
发表于:
2021-05-05 13:14