1、准备5台腾讯云CVM云服务器(CentOS 7.6 64位),下图为每台服务器实例的配置:

基建:用来部署redis、mysql、maxwell、rabbitmq、elasticsearch、logstash、kibana集群
组件:用来部署apollo、xxl-job、zipkin集群
应用:用来部署认证/授权服务器、网关/资源服务器,以及业务集群
LB1/LB2:用来部署keepalived+haproxy集群
采购前,请先创建好私有网络,然后购买时选择自己的私有网络,参考文档:https://cloud.tencent.com/document/product/215/36515
使用私有网络的好处是,服务器内部之间的通信全都走私有网络,速度可达1.5GB/s,快!
2、除了LB1/LB2外,其他实例都需要安装docker、docker-compose
##安装docker关闭防火墙systemctl stop firewalld.service将selinux置为失效vi /etc/selinux/configSELINUX=disabled下载阿里云docker社区版yum源cd /etc/yum.repos.d/wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo查看docker安装包:yum list | grep docker安装Docker Ce 社区版本:yum install -y docker-ce.x86_64设置开机启动:systemctl enable docker更新xfsprogs:yum -y update xfsprogs启动docker:systemctl start docker查看版本:docker version查看详细信息:docker info配置阿里云镜像加速器(申请地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors)申请好了修改docker配置文件:vi /etc/docker/daemon.json{"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"],"log-driver":"json-file","log-opts": {"max-size":"100m", "max-file":"3"}}将xxx替换成自己的max-size=100m,意味着一个容器日志大小上限是500Mmax-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json重启dockersystemctl daemon-reload && systemctl restart docker检查版本:docker --version##安装docker-compose下载docker-compose v2.1.1 的 docker-compose-linux-x86_64:https://github.com/docker/compose/releases将docker-compose-linux-x86_64重命名为docker-compose然后将docker-compose拷贝至/usr/local/bin/下检查版本:docker-compose --version
3、所有实例都需要设置swap交换分区(内存足够大则可以忽略这步)
#查看分区free -h#生成交换分区文件(这里以4G内存为例,分区大小一般设置成物理内存的2倍)dd if=/dev/zero of=/swapfile bs=1024 count=8192kif(即输入文件,input file),of(即输出文件,output file);dev/zero是Linux的一种特殊字符设备(输入设备),可以用来创建一个指定长度用于初始化的空文件,如临时交换文件,该设备无穷尽地提供0,可以提供任何你需要的数目;bs=1024:单位数据块(block)同时读入/输出的块字节大小为1024个字节即1KB,bs(即block size);count=2048000:数据块(block)数量为2048000 ,即2048000个1KB;可以计算swap分区的容量为:8G(dd命令里的单位M表示1024*1024,k表示1024)。#检查分区文件大小ls -lh /swapfile#转换分区格式mkswap /swapfile#挂载交换分区swapon /swapfile#上面的挂载会在系统重启后失效,可通过编辑/etc/fstab永久生效sudo sh -c "echo '/swapfile swap swap defaults 0 0' >> /etc/fstab"#查看交换分区使用比例cat /proc/sys/vm/swappiness#设置交换分区使用比例(比例越大,表示更多的使用分区,其实这样不好,会造成物理内存浪费)sysctl vm.swappiness=50#上面的设置系统重启后失效,可通过编辑/etc/sysctl.conf永久生效sudo sh -c "echo 'vm.swappiness=50' >> /etc/sysctl.conf"#再次查看分区free -h
4、所有实例都需要运行python服务器监控脚本
## 设置时区(如果没设置,否则跑python脚本会报错)cat /etc/timezone #查看设置的是否是Asia/Shanghai,不是的话请修改成Asia/Shanghaivim /etc/timezonerm -f /etc/localtimecp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime## 运行python服务器监控脚本(脚本从这里拉取:https://github.com/xlvchao/ok-system-helper)#安装依赖库pip3 install -r requirements.txt#如果安装时报错:如果报错提示#include Python.h...error:command 'gcc' failed with exit status 1sudo yum install python3-devel然后重试 安装依赖库#运行脚本(记得修改各个机器上config.cnf里面的host地址)nohup python3 -u scheduled_task.py > scheduled_task.log 2>&1 &nohup python3 -u web_service.py > web_service.log 2>&1 &#查看所有运行中的python进程ps aux |grep python3特别说明:这步需要在“部署文档”中的redis、mysql安装好之后再操作!!!
5、后续的安装基本都是采用docker/docker-compose,默认读者已经具备这两项基本能力。
如果搞不定,请加群讨论,扫码关注,发送“加群”

