Redis 6.25 K8S上集群部署文档操作手册
###

一、先加载镜像到用户环境
（1）、master节点 redis 解压目录下操作：
docker load -i redis_6.2.5-v1.tar
（2）、备注：需要修改为用户镜像，再push前执行 docker tag registry.edoc2.com:5000/edoc2v5/redis:6.2.5-v1 {用户指定的image tag}
默认执行(提交到本地镜像仓库操作)：
docker push registry.edoc2.com:5000/edoc2v5/redis:6.2.5-v1
（3）、用户指定img tag: 
docker push {用户指定的image tag}
（4）、修改编排部署文件中的image tag
# vim 04-redis-statefulset.yaml
修改 registry.edoc2.com:5000/edoc2v5/redis:6.2.5-v1 为 {用户指定的image tag}
wq!保存退出
# vim 05-redis-sentinel-deployment-sentinel.yaml
修改 registry.edoc2.com:5000/edoc2v5/redis:6.2.5-v1 为 {用户指定的image tag}
wq!保存退出


###
二、通过手动脚本启动Rabbitmq集群操作：

1、vim deploy_redis.sh
#!/bin/bash
# 以下信息确认如果满足需要需要采用命令行，目录创建纯手动部署模式，见Rabbitmq-README.md文档。
# 对应你部署环境namesapce命令（必填）
namespace=edoc2

# 部署三节点的k8snode节点主机名 k8s-node01 k8s-node02 k8s-node03 必须替换自己的节点主机名（必填）
WorkNode01=k8s-node01
WorkNode02=k8s-node02
WorkNode03=k8s-node03
# node节点ssh 端口
SSH_PORT=22
# 产研标准要求是写死，此处提供redis数据配置挂载点 /home/data/redis
# 需要修改路径 编辑 
vim 04-redis-statefulset.yaml
# 自行修改 path: /home/data 挂载根路径
      - name: rdata
        hostPath:
          path: /home/data/redis/
      - name: rconf
        hostPath:
          path: /home/data/redis-conf/

2、执行命令操作：
（1）、source deploy_redis.sh start
（2）、source deploy_redis.sh stop
（3）、source deploy_redis.sh restart


###
三、纯手动执行命令行操作：

1、准备工作操作命令：
（1）、第一个k8s middleware宿主机节点操作执行命令：
mkdir -p /home/data/{redis,redis-conf}
（2）、第二个k8s middleware宿主机节点操作执行命令：
mkdir -p /home/data/{redis,redis-conf}
（3）、第三个k8s middleware宿主机节点操作执行命令：
mkdir -p /home/data/{redis,redis-conf}

2、master01节点操作redis yaml编排文件及redis sh启动文件：
   替换{需要修改的}
（1）、sed -i "s#namespace: edoc2#namespace {需要修改的}#g" *.yaml && sed -i "s#namespace: edoc2#namespace {需要修改的}#g" *.sh
（2）、vim 04-redis-statefulset.yaml
# 修改如下信息：
    - name: rdata
        hostPath:
          path: /home/data/redis/
      - name: rconf
        hostPath:
          path: /home/data/redis-conf/
# 默认/home/data/，一定要修改只需修改 /home/data/根路径  redis及redis-conf 禁止修改
wq! 保存退出

3、master01节点操作手动定义打节点标签：
（1）、执行如下操作：
# 定义node宿主机名字
WorkNode01={你环境的中间件第一节点主机名}
WorkNode02={你环境的中间件第二节点主机名}
WorkNode03={你环境的中间件第三节点主机名}
kubectl label nodes $WorkNode01 node.redis1.labels=redis-node01
kubectl label nodes $WorkNode02 node.redis2.labels=redis-node02
kubectl label nodes $WorkNode03 node.redis3.labels=redis-node03

kubectl label nodes $WorkNode01 node.labels.nodelabels=Middleware
kubectl label nodes $WorkNode02 node.labels.nodelabels=Middleware
kubectl label nodes $WorkNode03 node.labels.nodelabels=Middleware

sleep 1
kubectl apply -f 01-redis-configmap.yaml
sleep 1
kubectl apply -f 02-redis-secret.yaml
sleep 1
kubectl apply -f 03-redis-service.yaml
sleep 1
kubectl apply -f 04-redis-statefulset.yaml
sleep 15
kubectl apply -f 05-redis-sentinel-deployment-sentinel.yaml

4、master01节点操作，启动redis集群操作命令：
（1）、创建 redis configmap
kubectl apply -f 01-redis-configmap.yaml
（2）、创建 redis secret 密文
kubectl apply -f 02-redis-secret.yaml
（3）、创建 redis svc
kubectl apply -f 03-redis-service.yaml
（4）、部署 sts redis服务 一主二从
kubectl apply -f 04-redis-statefulset.yaml
（5）、部署 deployment sentinel三哨兵
kubectl apply -f 05-redis-sentinel-deployment-sentinel.yaml
（6）、等待3分钟后确认redis pod running状态：
kubectl get pod -n {你自己的namespace} | grep redis # 默认namespace 为 edoc2
返回信息如下；
NAME                               READY   STATUS    RESTARTS   AGE
redis-0                            1/1     Running   0          5d12h
redis-1                            1/1     Running   0          5d12h
redis-2                            1/1     Running   0          5d12h
redis-sentinel0-9f6c8878f-gfjfz    1/1     Running   0          5d12h
redis-sentinel1-6fb5949485-ctnq4   1/1     Running   0          5d12h
redis-sentinel2-6c84dddf7c-vnhnv   1/1     Running   0          5d12h
确认均为 Running切 READY 1/1


5、master01节点操作，停止rabbitmq集群操作命令：
（1）、删除停止 deployment sentinel三哨兵
kubectl delete -f 05-redis-sentinel-deployment-sentinel.yaml
（2）、删除停止 sts redis服务 一主二从
kubectl delete -f 04-redis-statefulset.yaml
（3）、删除停止 redis svc
kubectl delete -f 03-redis-service.yaml
（4）、删除停止 redis secret 密文
kubectl delete -f 02-redis-secret.yaml
（5）、删除停止 redis configmap
kubectl delete -f 01-redis-configmap.yaml

再次启动回到第4步操作！！！
