部署Redis Cluster

部署Redis Cluster

如未指定,下述命令在所有节点执行!

一、系统资源规划

节点名称系统名称CPU/内存网卡磁盘IP地址OS
Master1master12C/4Gens33128G192.168.0.11CentOS7
Master2master22C/4Gens33128G192.168.0.12CentOS7
Master3master32C/4Gens33128G192.168.0.13CentOS7
Slave1slave12C/4Gens33128G192.168.0.21CentOS7
Slave2slave22C/4Gens33128G192.168.0.22CentOS7
Slave3slave32C/4Gens33128G192.168.0.23CentOS7

二、系统软件安装与设置

1、安装基本软件

yum -y install vim wget epel-release

在这里插入图片描述

2、设置SELinux、防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

在这里插入图片描述

3、设置名称解析

echo 192.168.0.11 master1 >> /etc/hosts
echo 192.168.0.12 master2 >> /etc/hosts
echo 192.168.0.13 master3 >> /etc/hosts
echo 192.168.0.21 slave1 >> /etc/hosts
echo 192.168.0.22 slave2 >> /etc/hosts
echo 192.168.0.23 slave3 >> /etc/hosts

在这里插入图片描述

4、设置NTP

yum -y install chrony

在这里插入图片描述

systemctl start chronyd
systemctl enable chronyd
systemctl status chronyd

在这里插入图片描述

chronyc sources

在这里插入图片描述

三、部署Redis Cluster

1、安装Redis

yum -y install redis

在这里插入图片描述

修改所有节点Redis配置文件/etc/redis.conf:

# bind 127.0.0.1

在这里插入图片描述

protected-mode no

在这里插入图片描述

daemonize yes

在这里插入图片描述

cluster-enabled yes

在这里插入图片描述

cluster-config-file nodes-6379.conf

在这里插入图片描述

cluster-require-full-coverage no

在这里插入图片描述

启动Redis,并设置自启动:

systemctl start redis
systemctl enable redis
systemctl status redis

在这里插入图片描述

2、创建Redis Cluster

在Master1节点上meet其他Redis节点:

redis-cli cluster meet 192.168.0.12 6379
redis-cli cluster meet 192.168.0.13 6379
redis-cli cluster meet 192.168.0.21 6379
redis-cli cluster meet 192.168.0.22 6379
redis-cli cluster meet 192.168.0.23 6379

在这里插入图片描述

在任意节点查看Redis Cluster节点状态:

redis-cli cluster nodes

在这里插入图片描述

在任意节点查看Redis Cluster状态:

redis-cli cluster info

在这里插入图片描述

在Master1节点上创建添加槽位脚本addslots.sh

start=$1
end=$2
node=$3
for slot in `seq ${start} ${end}`
do
  redis-cli -h ${node} cluster addslots ${slot} > /dev/null
done
echo "slot${start}-slot${end} is assigned to node $3"

在这里插入图片描述

在Master1节点分配槽位:

bash addslots.sh 0 5461 192.168.0.11
bash addslots.sh 5462 10922 192.168.0.12
bash addslots.sh 10923 16383 192.168.0.13

在这里插入图片描述

在任意节点查看Redis Cluster节点状态:

redis-cli cluster nodes

在这里插入图片描述

在任意节点查看Redis Cluster状态:

redis-cli cluster info

在这里插入图片描述

在Slave节点上分别指定各自Master节点:

redis-cli cluster replicate xxxxxxxxxx

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在任意节点查看Redis Cluster槽位状态:

redis-cli cluster slots

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Kubernetes 上部署 Redis Cluster 集群,可以按照以下步骤进行: 1. 创建 Redis ConfigMap 首先,需要创建一个 Redis 配置文件 ConfigMap。可以使用以下命令创建: ``` kubectl create configmap redis-conf --from-file=redis.conf ``` 其中,`redis.conf` 是 Redis 配置文件的名称。可以根据实际情况进行修改。 2. 创建 Redis StatefulSet 接下来,可以创建 Redis StatefulSet。可以使用以下 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:6.0.9 ports: - containerPort: 6379 name: client - containerPort: 16379 name: gossip volumeMounts: - name: config mountPath: /usr/local/etc/redis/redis.conf subPath: redis.conf command: - sh - -c - | if [ -n "${POD_NAME}" ]; then sed -i "s/%cluster-name%/redis-cluster/g" /usr/local/etc/redis/redis.conf sed -i "s/%node-name%/${POD_NAME}/g" /usr/local/etc/redis/redis.conf fi volumes: - name: config configMap: name: redis-conf volumeClaimTemplates: - metadata: name: data spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi ``` 在上述 YAML 文件中,`replicas` 字段指定了 Redis 集群的节点数,`volumeClaimTemplates` 字段指定了每个节点的数据卷大小。另外,还需要注意以下几点: - `serviceName` 字段需要与 `metadata.name` 字段相同。 - `selector.matchLabels` 字段需要与 `metadata.labels` 字段相同。 - `command` 字段用于修改 Redis 配置文件中的节点名称和集群名称。 3. 创建 Redis Service 最后,需要创建 Redis Service。可以使用以下 YAML 文件作为模板: ``` apiVersion: v1 kind: Service metadata: name: redis-cluster labels: app: redis-cluster spec: ports: - name: client port: 6379 targetPort: 6379 - name: gossip port: 16379 targetPort: 16379 clusterIP: None selector: app: redis-cluster ``` 在上述 YAML 文件中,`clusterIP` 字段需要设置为 `None`,以便创建一个 Headless Service,让每个 Redis 节点可以通过 DNS 解析到自己的 IP 地址。 4. 部署 Redis Cluster 完成以上步骤后,可以使用以下命令部署 Redis Cluster: ``` kubectl apply -f redis-cluster.yaml ``` 其中,`redis-cluster.yaml` 是包含 Redis StatefulSet 和 Redis Service 的 YAML 文件。可以根据实际情况进行修改。 部署完成后,可以使用以下命令查看 Redis Cluster 的状态: ``` kubectl exec -it redis-cluster-0 -- redis-cli cluster nodes ``` 其中,`redis-cluster-0` 是 Redis Cluster 中的一个节点名称。可以根据实际情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值