1. 部署ceph存储创建pv的storageClass
2. 配置redis.conf配置文件到并挂载到configmap
# cat redis-configmap.yaml
---
apiVersion: v1
kind: ConfigMap
metadata:
name: redis-conf
namespace: redis-test
data:
update-node.sh: |
#!/bin/sh
REDIS_NODES="/data/nodes.conf"
sed -i -e "/myself/ s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/${POD_IP}/" ${REDIS_NODES}
exec "$@"
redis.conf: |+
cluster-enabled yes
cluster-config-file /data/nodes.conf
cluster-node-timeout 10000
protected-mode no
daemonize no
pidfile /var/run/redis.pid
port 6379
tcp-backlog 511
bind 0.0.0.0
timeout 3600
tcp-keepalive 1
loglevel verbose
logfile /data/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data
#requirepass yl123456
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 20000
slowlog-log-slower-than 10000
slowlog-max-len 128
#rename-command FLUSHALL ""
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
创建configmap并查看状态
# 创建configmap配置文件
[root@master redis]# kubectl apply -f redis-configmap.yaml
service/redis-service created
configmap/redis-conf created
statefulset.apps/redis-app created
# 查看configmap
[root@master redis]# kubectl get configmap -n redis-test
NAME DATA AGE
redis-conf 1 49m
3. 给redis创建个headness,然后再给redis暴露一个外部端口
# cat redis-headless.yaml
---
apiVersion: v1
kind: Service
metadata:
name: redis-service
namespace: redis-test
spec:
type: ClusterIP
clusterIP: None
ports:
- port: 6379
targetPort: 6379
name: client
- port: 16379
targetPort: 16379
name: gossip
selector:
app: redis
---
apiVersion: v1
kind: Service
metadata:
name: redis-nodeport
namespace: redis-test
spec:
type: NodePort
ports:
- name: client
port: 6379
targetPort: 6379
nodePort: 36379
selector:
app: redis
创建service并查看状态
# 创建headless服务查看状态
[root@master redis]# kubectl apply -f r