K8s部署 Redis 主从集群

原文链接
一、 Redis集群说明

一般来说,Redis部署有三种模式。

1)单实例模式 一般用于测试环境。

2)哨兵模式 在redis3.0以前,要实现集群一般是借助哨兵sentinel工具来监控master节点的状态。如果master节点异常,则会做主从切换,将某一台slave作为master。引入了哨兵节点,部署更复杂,维护成本也比较高,并且性能和高可用性等各方面表现一般。

3)集群模式 3.0 后推出的 Redis 分布式集群解决方案;主节点提供读写操作,从节点作为备用节点,不提供请求,只作为故障转移使用;如果master节点异常,会自动做主从切换,将slave切换为master。

后两者用于生产部署,但总的来说,集群模式明显优于哨兵模式。k8s环境下,如何部署redis集群(三主三从)。

二、安装NFS

1、在 master 节点(也可以在其它节点)创建 NFS 存储

yum -y install  nfs-utils rpcbind

2、创建NFS共享文件夹

mkdir -p /var/nfs/redis/pv{1..6}

3、配置共享文件夹

vim  /etc/exports
 
/var/nfs/redis/pv1  *(rw,sync,no_root_squash)
/var/nfs/redis/pv2  *(rw,sync,no_root_squash)
/var/nfs/redis/pv3  *(rw,sync,no_root_squash)
/var/nfs/redis/pv4  *(rw,sync,no_root_squash)
/var/nfs/redis/pv5  *(rw,sync,no_root_squash)
/var/nfs/redis/pv6  *(rw,sync,no_root_squash)

4、使配置生效

exportfs -r

5、查看所有共享目录

exportfs -v

6、启动nfs

systemctl start nfs-server
systemctl enabled nfs-server
systemctl start rpcbind
systemctl enabled rpcbind

7、其他节点安装nfs-utils

yum -y install nfs-utils
三、创建PV卷

1、创建namespace

kubectl create ns redis-cluster

2、创建nfs 客户端sa授权

cat > redis-nfs-client-sa.yaml
 
apiVersion: v1
kind: ServiceAccount
metadata:
  name: redis-nfs-client
  namespace: redis-cluster
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: nfs-client-runner
  namespace: redis-cluster
rules:
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get","list","watch","create","delete"]
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs: ["get","list","watch","create","delete"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get","list","watch"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["get","list","watch","create","update","patch"]
  - apiGroups: [""]
    resources: ["endpoints"]
    verbs: ["create","delete","get","list","watch","patch","update"]
 
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: run-nfs-provisioner
  namespace: redis-cluster
subjects:
  - kind: ServiceAccount
    name: redis-nfs-client
    namespace: redis-cluster
roleRef:
  kind: ClusterRole
  name: nfs-client-runner
  apiGroup: rbac.authorization.k8s.io

3、创建nfs 客户端

cat > redis-nfs-client.yaml
 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-nfs-client
  labels:
    app: redis-nfs-client
  # replace with namespace where provisioner is deployed
  namespace: redis-cluster
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: redis-nfs-client
  template:
    metadata:
      labels:
 &
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值