Kubernetes(k8s)Helm 部署 Redis 集群

一、集群信息

  • 方法因人而异,但大同小异,以下是我的部署方法。

1.1、 主机信息

主机名 ip地址 描述 核心 内存
node-01 192.168.8.131 master 节点 2核 8G
node-02 192.168.8.132 node 节点 2核 8G
node-03 192.168.8.133 node 节点 2核 8G

1.2、版本说明

服务 版本
helm 3.1.1
Redis 5.0.8
Kubernetes 1.17.3

二、部署动态 PV

2.1、 创建名称空间

  • 创建一个 monitoring 名称空间,将 nfs-client-provisioner 放在这个名称空间上
kubectl create ns nfs

2.2、创建 EFK 存储目录

  • 该存储目录专门存放 EFK 数据包括: Elasticsearch Fluentd Kibana 数据
mkdir -p /data/NFS/redis

3.3、使用 helm 安装 nfs-client-provisioner

  • 项目地址:https://hub.helm.sh/charts/stable/nfs-client-provisioner
  • 安装到 nfs 命名空间
  • 重点:nfs.path 让数据存储到指定目录,这样好区分数据
  • 重点:storageClass.name 这里填写 monitoring 专属名称,用于 PVC 自动绑定专属动态 PV 上。
#   下面代码直接复制黏贴即可
cat > nfs-client.yaml << EOF
# NFS 设置
nfs:
  server: 192.168.8.131
  path: /data/NFS/redis
storageClass:
  # 此配置用于绑定 PVC 和 PV
  name: redis-nfs-client
  # 资源回收策略
  reclaimPolicy: Retain
# 使用镜像
image:
  repository: quay-mirror.qiniu.com/external_storage/nfs-client-provisioner
# 副本数量
replicaCount: 2
EOF

#   helm 部署 Prometheus 安装指定版本 Prometheus 5.0.4
helm install efk-nfs-storage -n nfs --values nfs-client.yaml stable/nfs-client-provisioner --version 1.2.8

2.4、查看运行 nfs-client-provisioner Pod 状态

[root@Node-01 ~]# kubectl get pod -n nfs -w
NAME                                                             READY   STATUS    RESTARTS   AGE
efk-nfs-storage-nfs-client-provisioner-57d6c64f6b-hqb9p          1/1     Running   0          4s
efk-nfs-storage-nfs-client-provisioner-57d6c64f6b-jj5vr          1/1     Running   0          4s

三、部署 Redis

3.1、 创建名称空间

  • 创建一个 redis 名称空间,将 Nginx Ingress 放在这个名称空间上
kubectl create ns redis

3.2、安装 Nginx Redis

#   添加 bitnami 仓库
helm repo add bitnami https://charts.bitnami.com/bitnami

helm install redis -n redis \
--set password="Akiraka.net" \
--set master.service.type=NodePort,master.service.nodePort=30379 \
--set master.persistence.enabled=false,slave.persistence.enabled=false \
--set cluster.enabled=true \
--set cluster.slaveCount=3 \
bitnami/redis --version 12.6.0

3.3、查看运行 Pod 状态

[root@Node-01 ~]# kubectl get pod -n redis
NAME                                    READY   STATUS                       RESTARTS   AGE
redis-master-0                          1/1     Running                      0          5m33s
redis-slave-0                           1/1     Running                      0          5m33s
redis-slave-1                           1/1     Running                      0          3m55s

3.4、查看 Redis Pvc

  • 固定端口为:30379
[root@Node-01 ~]# kubectl get svc -n redis
NAME             TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
kubernetes       ClusterIP   10.1.0.1       <none>        443/TCP          47d
redis-headless   ClusterIP   None           <none>        6379/TCP         6m
redis-master     NodePort    10.1.192.250   <none>        6379:30379/TCP   6m
redis-slave      ClusterIP   10.1.86.62     <none>        6379/TCP         6m

四、访问 Redis

  • 我是通过客户端访问的

版权声明:
作者:Akiraka
链接:https://www.akiraka.net/kubernetes/509.html
来源:Akiraka
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
Kubernetes(k8s)Helm 部署 Redis 集群
一、集群信息 方法因人而异,但大同小异,以下是我的部署方法。 1.1、 主机信息 主机名 ip地址 描述 核心 内存 node-01 192.168.8.131 master 节点 2……
<<上一篇
下一篇>>
文章目录
关闭
目 录