原文链接
一、 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: &

最低0.47元/天 解锁文章
3128

被折叠的 条评论
为什么被折叠?



