K8S部署redis集群,并导入单机版redis数据到集群
可能格式不怎么好看,就是提供一个思路
1、编写一个config文件,给挂载到k8s容器里。这个文件是从网上找的,这个脚本没什么改的,redis的配置文件,可以根据自己的需求做修改
添加config.yaml文件
apiVersion: v1 kind: ConfigMap metadata: name: redis-cluster-config data: fix-ip.sh: | #!/bin/sh CLUSTER_CONFIG="/data/nodes.conf" if [ -f ${CLUSTER_CONFIG} ]; then if [ -z "${POD_IP}" ]; then echo "Unable to determine Pod IP address!" exit 1 fi echo "Updating my IP to ${POD_IP} in ${CLUSTER_CONFIG}" sed -i.bak -e '/myself/ s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/'${POD_IP}'/' ${CLUSTER_CONFIG} fi 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 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 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添加一个server.yaml
apiVersion: v1 kind: Service metadata: name: redis-cluster labels: app: redis-cluster spec: ports: - port: 6379 name: redis clusterIP: None selector: app: redis-cluster添加pod.yaml
apiVersion: apps/v1 kind: StatefulSet metadata: name: redis-cluster spec: serviceName: redis-cluster replicas: 6 selector: matchLabels: app: redis-cluster template: metadata: labels: app: redis-cluster spec: containers: - name: redis image: redis:7.2.1 ports: - containerPort: 6379 command: ["/etc/redis/fix-ip.sh", "redis-server", "/etc/redis/redis.conf"] env: - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP volumeMounts: - name: redis-config mountPath: /etc/redis/ readOnly: false - name: redis-data mountPath: /data volumes: - name: redis-config configMap: name: redis-cluster-config defaultMode: 0755 volumeClaimTemplates: - metadata: name: redis-data spec: storageClassName: "nas-c" accessModes: - ReadWriteMany resources: requests: storage: 50Gi本文来自博客园,作者:有鹏自远方来,转载请注明原文链接:https://www.cnblogs.com/2019peng/p/18367498

浙公网安备 33010602011771号