k8s部署redis两主两从集群并初始化集群

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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Kubernetes上部署Redis两主从的步骤如下: 1. 创建一个Ubuntu容器,用于进行Redis集群的管理控制。可以使用以下命令创建该容器: ``` kubectl run -it ubuntu --image=ubuntu --restart=Never /bin/bash ``` 2. 在Ubuntu容器中安装Redis-tribe,并初始化Redis集群。可以使用以下命令安装Redis-tribe: ``` apt-get update apt-get install -y redis-tools ``` 3. 创建一个Configmap,将Redis的配置文件转化为Configmap。可以使用以下命令创建Configmap: ``` kubectl create configmap redis-config --from-file=redis.conf ``` 4. 修改redis.conf配置文件,确保以下配置项正确设置: ``` appendonly yes cluster-enabled yes cluster-config-file /var/lib/redis/nodes.conf cluster-node-timeout 5000 dir /var/lib/redis port 6379 ``` 5. 创建Redis节点和从节点的Deployment和Service。可以使用以下命令创建节点的Deployment和Service: ``` kubectl create -f redis-master-deployment.yaml kubectl create -f redis-master-service.yaml ``` 6. 创建Redis的从节点的Deployment和Service。可以使用以下命令创建从节点的Deployment和Service: ``` kubectl create -f redis-slave-deployment.yaml kubectl create -f redis-slave-service.yaml ``` 7. 修改redis-sentinel.conf配置文件,将sentinel monitor mymaster的IP地址更改为自己的IP地址。 8. 创建Redis Sentinel的Configmap,并使配置文件生效。可以使用以下命令创建Configmap并使其生效: ``` kubectl create configmap redis-sentinel-config --from-file=redis-sentinel.conf kubectl apply -f redis-sentinel-configmap.yaml ``` 通过以上步骤,你可以在Kubernetes上成功部署一个包含节点和个从节点的Redis集群。请确保根据你的实际情况修改相应的配置文件和IP地址。 #### 引用[.reference_title] - *1* *2* [在K8s部署Redis 集群](https://blog.csdn.net/sebeefe/article/details/124473706)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [基于k8s部署redis从三哨兵集群](https://blog.csdn.net/makabaka1234/article/details/125681517)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值