0单机部署
redis:5.0.5-alpine3.10
zhuzhu = yes
数据券主机映射
/usr/local/redis/data
/data
高级命令
redis-server --requirepass dfhdfg51df2g41 --appendonly yes
要有持久化就要 appendonly yes
# 1.0部署reids镜像
在141上部署redis1,在142上部署redis2和redis3
在140上执行,也可以在rancher直接部署,它会自动下载镜像
docker pull redis:5.0.5-alpine3.10
按照惯例查看一下镜像详细信息
docker image inspect redis:5.0.5-alpine3.10
推送到私有仓库去
docker tag redis:5.0.5-alpine3.10 192.168.232.140:5000/redis:5.0.5-alpine3.10
docker push 192.168.232.140:5000/redis:5.0.5-alpine3.10
docker rmi 192.168.232.140:5000/redis:5.0.5-alpine3.10
docker rmi redis:5.0.5-alpine3.10
8.1Redis通过RDB和AOF两种方式来进行数据的持久化,先创建一个主机目录作为持久化目录进行数据挂载
# 8.2rancher部署redis服务之前,先做好远程挂载卷,
https://www.cnblogs.com/st-jun/p/7742560.html
因为现在的目录和文件都在140上,而redis是部署到141,142动态部署,不可能手动去创建文件夹和conf文件,所以在动态主机上挂载远程存储卷。
## 8.2.1服务器端安装NFS服务
140上执行
判断有没有装NFS,rpm -qa nfs-utils rpcbind
如果没有,那就安装NFS服务的nfs-unitls和rpcbind(会自动同时自动安装rpcbind)
yum -y install nfs-utils
启动rpcbind服务(一定要先启动rpcbind服务再启动nfs服务)
systemctl status rpcbind
systemctl stop rpcbind
systemctl stop nfs-utils
systemctl start rpcbind
systemctl start nfs-utils
systemctl enable rpcbind
systemctl enable nfs-utils
8.2.2
nfs除了主程序端口2049和rpcbind的端口111是固定以外,还会使用一些随机端口,以下配置将定义这些端口,以便配置防火墙
vi /etc/sysconfig/nfs
#结尾追加端口配置
MOUNTD_PORT=4001
STATD_PORT=4002
LOCKD_TCPPORT=4003
LOCKD_UDPPORT=4003
RQUOTAD_PORT=4004
:wq
vi /etc/exports
/water/runfile/docker_volume 192.168.232.140/24(rw,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_root_squash)
#这里可以配置多个路径,我只配置了/water/runfile/docker_volume
rpc.nfsd 8
rpc.mountd
exportfs -r
#使配置生效
exportfs
#可以查看到已经ok
firewall-cmd --zone=public --add-port=2049/udp --permanent
firewall-cmd --zone=public --add-port=2049/tcp --permanent
firewall-cmd --zone=public --add-port=111/udp --permanent
firewall-cmd --zone=public --add-port=111/tcp --permanent
firewall-cmd --zone=public --add-port=4001/udp --permanent
firewall-cmd --zone=public --add-port=4001/tcp --permanent
firewall-cmd --zone=public --add-port=4004/udp --permanent
firewall-cmd --zone=public --add-port=4004/tcp --permanent
firewall-cmd --reload
systemctl restart nfs-config
systemctl restart nfs-idmap
systemctl restart nfs-lock
systemctl restart nfs-server
systemctl enable nfs-config
systemctl enable nfs-idmap
systemctl enable nfs-lock
systemctl enable nfs-server
rpcinfo -p
在nfs客户机上执行:
141、142上执行:
yum -y install nfs-utils
systemctl stop rpcbind
systemctl stop nfs-utils
systemctl start rpcbind
systemctl start nfs-utils
systemctl enable rpcbind
systemctl enable nfs-utils
给141主机添加标签redis=redisM,给142主机添加标签redis=redisS
-----------------------------------------------------------------------
这里不用,这是单节点的redis。使用下面的reids集群
------------------------
8.2.3 Rancher2.0中使用NFS存储,在集群中创建持久卷(添加PV)
填写添加持久卷参数-名称-卷插件-容量-路径-服务器-访问模式
nfs-pv
NFS-Share 10
/water/runfile/docker_volume 192.168.232.140
是否只读:否
多主机读写
点击完成
持久卷PV添加完成后的可用状态-Available
8.2.4 在项目Default中创建数据卷(PVC),pv是全局的,pvc是命名空间的
工作负载-负载均衡-服务发现-PVC(勾)-流水线
添加数据卷-先选择项目-数据卷-添加卷
填写:卷声明名称-选择刚创建的持久化卷-访问模式
nfs-pvc-redis
持久卷(PV) 选择:nfs-pv
自定义: 多主机读写
数据卷的卷声明和持久卷已经绑定完毕
8.2.5部署工作负载(redis)时使用PVC
这步在8.6创建reids服务的时候来选择卷里操作
------------------------
140上执行:
mkdir -p /water/runfile/docker_volume/redis/data
目录挂载
/water/runfile/docker_volume/redis/data:/data
自定义配置文件挂载:
创建配置文件目录
mkdir -p /water/runfile/docker_volume/redis/conf
编辑配置文件
cd /water/runfile/docker_volume/redis/conf
vi redis.conf
,,文件在文件夹下,因为内容太多不贴在这里
相关修改的配置参考
https://blog.csdn.net/JetaimeHQ/article/details/83303346
8.3rancher部署redis服务
redisM
192.168.232.140:5000/redis:5.0.5-alpine3.10
6379 6379
主机调度:redis=redisM
数据卷:挂载到远程主机存储路径,选择"使用现有PVC"
redism-data
选择pvc:nfs-pvc-redis
/data redis/data
/usr/local/etc/redis/redis.conf redis/conf/redis.conf
默认是不用配置文件启动的,在高级选项,命令里,加上redis-server /usr/local/etc/redis/redis.conf
高级选项 网络 选用主机网络
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
启动
8.4远程连接redis
redis-cli.exe -h 192.168.232.141 -p 6379
-----------------------------------------------------------------------
# 8.5rancher部署redis集群
https://cloud.tencent.com/developer/article/1432088
https://my.oschina.net/ruoli/blog/2252393
配置文件还是用140上共享的目录
mkdir -p /water/runfile/docker_volume/redis_cluster
mkdir -p /water/runfile/docker_volume/redis_cluster/7001/data
mkdir -p /water/runfile/docker_volume/redis_cluster/7002/data
mkdir -p /water/runfile/docker_volume/redis_cluster/7003/data
cd /water/runfile/docker_volume/redis_cluster
----------------
rpc.nfsd 8
rpc.mountd
exportfs -r
#使配置生效
exportfs
#可以查看到已经ok
----------------
vi /water/runfile/docker_volume/redis_cluster/7001/redis.conf
vi /water/runfile/docker_volume/redis_cluster/7002/redis.conf
vi /water/runfile/docker_volume/redis_cluster/7003/redis.conf
将原版的redis配置写入,并主要修改如下配置:
#bind 127.0.0.1
port 7001 #端口
cluster-enabled yes #启用集群模式
cluster-config-file /data/nodes.conf
cluster-node-timeout 5000 #超时时间
logfile "/data/redis.log" #输出日志
appendonly yes
daemonize no #是否后台运行,这里不能改成yes,不然docker运行就关闭了
protected-mode no #非保护模式
pidfile /var/run/redis.pid
## 8.6配置文件完成后开始在rancher里创建redis服务
在rancher里springcloud里添加一个新的命名空间
redis-cluster
保存
8.7先加一个rediscluster命名空间的pv和pvc用来共享存储,开始建的命名空间在Default,所以用不了
填写添加持久卷参数-名称-卷插件-容量-路径-服务器-访问模式
nfs-redisclutser-pv
NFS-Share 10
/water/runfile/docker_volume 192.168.232.140
是否只读:否
多主机读写
点击完成
持久卷PV添加完成后的可用状态-Available
工作负载-负载均衡-服务发现-PVC(勾)-流水线
选择添加pvc
nfs-redisclutser-pvc 命名空间:选择刚创建的redis-cluster
持久卷(PV) 选择:nfs-redisclutser-pv
自定义: 多主机读写
数据卷的卷声明和持久卷已经绑定完毕
# 8.8部署redis master服务(部署工作负载)
redisClusterM
192.168.232.140:5000/redis:5.0.5-alpine3.10 命名空间:选择刚创建的redis-cluster
7001 7001
17001 17001
主机调度:redis=redisM
数据卷:挂载到远程主机存储路径,选择"使用现有PVC"
redisclusterm-data
选择pvc:nfs-redisclutser-pvc
/data redis_cluster/7001/data
/usr/local/etc/redis/redis.conf redis_cluster/7001/redis.conf
数据卷:将时区文件挂载一下,选择"映射主机目录"
localtime
/etc/localtime /etc/localtime
数据卷:将/usr/bin挂载一下,选择"映射主机目录",不然启动redis集群有问题
usr-bin
/usr/bin /usr/bin
如果这个目录映射不行,就用docker logs命令查看镜像调用的docker-entrypoint.sh文件在哪里,在主机上找出
find / -name docker-entrypoint.sh
cp .....到某个主机目录,映射到容器启动的路径上,如下:
/usr/local/bin/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
默认是不用配置文件启动的,在高级选项,命令里,加上redis-server /usr/local/etc/redis/redis.conf
高级选项 网络 选用主机网络
firewall-cmd --zone=public --add-port=7001/tcp --permanent
firewall-cmd --zone=public --add-port=17001/tcp --permanent
firewall-cmd --reload
启动
8.9部署redis slaves(部署工作负载)
redisClusterS1
192.168.232.140:5000/redis:5.0.5-alpine3.10 命名空间:选择刚创建的redis-cluster
7002 7002
17002 17002
主机调度:redis=redisS
数据卷:挂载到远程主机存储路径,选择"使用现有PVC"
redisclusters-data
选择pvc:nfs-redisclutser-pvc
/data redis_cluster/7002/data
/usr/local/etc/redis/redis.conf redis_cluster/7002/redis.conf
数据卷:将时区文件挂载一下,选择"映射主机目录"
localtime
/etc/localtime /etc/localtime
数据卷:将/usr/bin挂载一下,选择"映射主机目录",不然启动redis集群有问题
usr-bin
/usr/bin /usr/bin
如果这个目录映射不行,就用docker logs命令查看镜像调用的docker-entrypoint.sh文件在哪里,在主机上找出
find / -name docker-entrypoint.sh
cp .....到某个主机目录,映射到容器启动的路径上,如下:
/usr/local/bin/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
默认是不用配置文件启动的,在高级选项,命令里,加上redis-server /usr/local/etc/redis/redis.conf
高级选项 网络 选用主机网络
firewall-cmd --zone=public --add-port=7002/tcp --permanent
firewall-cmd --zone=public --add-port=17002/tcp --permanent
firewall-cmd --reload
-----------------------------
redisClusterS2
192.168.232.140:5000/redis:5.0.5-alpine3.10 命名空间:选择刚创建的redis-cluster
7003 7003
17003 17003
主机调度:redis=redisS
数据卷:挂载到远程主机存储路径,选择"使用现有PVC"
redisclusters-data
选择pvc:nfs-redisclutser-pvc
/data redis_cluster/7003/data
/usr/local/etc/redis/redis.conf redis_cluster/7003/redis.conf
数据卷:将时区文件挂载一下,选择"映射主机目录"
localtime
/etc/localtime /etc/localtime
数据卷:将/usr/bin挂载一下,选择"映射主机目录",不然启动redis集群有问题
usr-bin
/usr/bin /usr/bin
如果这个目录映射不行,就用docker logs命令查看镜像调用的docker-entrypoint.sh文件在哪里,在主机上找出
find / -name docker-entrypoint.sh
cp .....到某个主机目录,映射到容器启动的路径上,如下:
/usr/local/bin/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
默认是不用配置文件启动的,在高级选项,命令里,加上redis-server /usr/local/etc/redis/redis.conf
高级选项 网络 选用主机网络
firewall-cmd --zone=public --add-port=7003/tcp --permanent
firewall-cmd --zone=public --add-port=17003/tcp --permanent
firewall-cmd --reload
8.10将三个redis串联起来变成集群
下载redis-cli客户端镜像,在140上执行:
docker pull goodsmileduck/redis-cli:v5.0.3
docker tag goodsmileduck/redis-cli:v5.0.3 192.168.232.140:5000/goodsmileduck/redis-cli:v5.0.3
docker push 192.168.232.140:5000/goodsmileduck/redis-cli:v5.0.3
docker rmi 192.168.232.140:5000/goodsmileduck/redis-cli:v5.0.3
docker rmi goodsmileduck/redis-cli:v5.0.3
8.11在rancher里部署redis-cli服务
redis-cli
192.168.232.140:5000/goodsmileduck/redis-cli:v5.0.3
网络:是否用主机网络:是
启动
8.12在rancher里执行命令,将三个redis串联起来
cd bin
redis-cli --cluster create 192.168.232.141:7001 192.168.232.142:7002 192.168.232.142:7003 --cluster-replicas 0
输入:yes
#redis集群至少要3个主节点,这里只有3个节点,所以没有从节点,所以cluster-replicas为0
#如果是六个节点的话就执行如下
redis-cli --cluster create 192.168.232.141:7001 192.168.232.142:7002 192.168.232.142:7003 192.168.232.142:7004 192.168.232.142:7005 192.168.232.142:7006 --cluster-replicas 1
create 表示创建一个redis集群。
--cluster-replicas 1 表示为集群中的每一个主节点指定一个从节点,即一比一的复制
8.13查看redis集群
在windows启动redis client时,要使用集群模式启动,不然操作key因为哈希槽操作而报错不方便
redis-cli.exe -c -h 192.168.232.142 -p 7003
查看集群中的节点
cluster nodes
- CI/CD环境构建
- docker命令
- 服务器需要开的端口
- 1.docker安装
- 2.rancher安装
- 3.k3s集群搭建
- 4.jenkins安装
- 5.私有镜像仓库创建
- 6.redis集群搭建
- 7.mysql集群搭建
- 8.Skywalking搭建,需要服务对接到这里
- 9.安装nacos
- 10.es安装
- 11.将镜像上传到私有镜像仓库
- 12.分布式定时任务构建
- 13.rancher安装rabbitmq集群
- skywalking安装oap
- docker直接安装es配置的skywaling
- logstash的DockerFile
- logstash的logstash.config文件
- Docker搭建logstash同步mysql数据到elasticsearch
- 14.rancher安装nfs操作
- 15.rancher安装es
- 单体
- 集群
- 项目自动化部署
- 1.jenkins关联git仓库
- 2.rancher部署项目
- vue-dist.zip-Dockerfile
- vue-dist.zip-nginx.conf
- spingboot-Dockerfile
- nginx-ingress 配置 负载均衡
- 管理工具安装
- jira-docker安装
- 直接用晓的镜像
- yapi启动运行
- 安装调用链监控skywalking
- 安装oap