CacheCloud Redis私有云平台 :支持Redis多种架构(Standalone、Sentinel、Cluster)高效管理、有效降低大规模redis运维成本,提升资源管控能力和利用率。平台提供快速搭建/迁移,运维管理,弹性伸缩,统计监控,客户端整合接入等功能。本文将对CacheCloud平台的安装部署与集群创建流程进行测试。
首先在vmware中创建4个CENTOS系统的虚拟机,
cachecloud-web:cachecloud服务部署的服务器
cachecloud-machine01、02、03: cachecloud要管理的资源服务器将会在上面创建redis集群
功能的拓扑图:
机器 | Ip |
---|---|
cachecloud-web | 10.4.7.211 |
cachecloud-machine01 | 10.4.7.212 |
Cachecloud-machine02 | 10.4.7.213 |
Cachecloud-machine03 | 10.4.7.214 |
机器配置网络
# 关闭防火强 必须执行
systemctl stop firewalld
# 安装 epel
yum install epel-release
# 安装常用工具
yum install wget net-tools telnet tree nmap sysstat lrzsz dos2unix bind-utils nc ifconfig wget -y
# 修改网络配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
ifcfg-ens33配置文件内容如下
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=2d30e58d-0954-4959-b44f-04c0c0beac65
DEVICE=ens33
ONBOOT=yes
# GATEWAY和IPADDR自己设置就可以,格式正常就行
GATEWAY=10.4.7.1
IPADDR=10.4.7.211
NETMASK=255.255.252.0
# DNS要设置的与网络中的DNS的一致
DNS1=10.2.3.20
修改后保存,并重启network
systemctl restart network
其他三台资源机也做相同配置,区别只是IPADDR做区分
使用idea下载cachecloud源码 https://github.com/sohutv/cachecloud.git
创建一个mysql数据库,然后执行项目中的初始化sql,我是在Docker中创建的Mysql数据库,具体步骤省略。
sql有两个,2.0.sql 和 update2.0-2.1.sql
创建一个redis服务,我是在Docker中创建,具体步骤省略。
将Mysql、redis的信息配置到cachecloud的application-local.yml配置中
在cachecloud-web服务器配置免登录配置,将本机的 ~/.ssh/id_rsa.pub
文件的内容复制到cachecloud-web服务器的 /root/.ssh/authorized_keys
文件中。然后即可配置免登录。
在cachecloud-web服务器创建 /opt/cachecloud-web
目录
mkdir -p /opt/cachecloud-web
cachecloud-web服务器安装jdk
1.查看yum库中都有哪些jdk版本(暂时只发现了openjdk)
[root@localhost ~]# yum search java|grep jdk
……
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
……
2.选择1.8版本进行安装
[root@localhost ~]# yum install java-1.8.0-openjdk
//安装完之后,默认的安装目录是在: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64
安装时如果出现
Delta RPMs disabled because /usr/bin/applydeltarpm not installed. 的错误,
依次执行以下命令即可
yum provides '*/applydeltarpm'
yum install deltarpm
3.设置环境变量
[root@localhost ~]# vi /etc/profile
在profile文件中添加如下内容
#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
让修改环境变量生效
[root@localhost java]# source /etc/profile
创建 restart.sh脚本
#!/bin/bash
ps -ef|grep cachecloud-web|grep -v grep|awk '{print $2}'|xargs kill
nohup java -jar cachecloud-web.war >> stdout.log &
tail -f stdout.log
在idea中的cachecloud-web项目的根目录下创建 deploy.sh脚本
#!/bin/bash
mvn clean compile install -Plocal
if [ $? -ne 0 ];then
echo "mvn failed"
exit 1
fi
TARGET=root@10.4.7.211:/opt/cachecloud-web
scp bin/* ${TARGET}
scp target/cachecloud-web.war ${TARGET}
ssh root@10.4.7.211 "cd /opt/cachecloud-web && sh restart.sh"
restart.sh脚本内容
#!/bin/bash
ps -ef|grep cachecloud-web|grep -v grep|awk '{print $2}'|xargs kill
nohup java -jar cachecloud-web.war >> stdout.log &
tail -f stdout.log
环境准备好以后,我们就可以执行deploy.sh脚本,将cachecloud-web项目打包并传输到cachecloud-web服务器上,并启动cachecloud-web服务。访问 http://10.4.7.211:8080/ 即可访问cachecloud服务
配置接入服务器 参考文档 https://github.com/sohutv/cachecloud/wiki/3.%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E6%8E%A5%E5%85%A5%E6%96%87%E6%A1%A3
资源服务器配置
(a). 使用root登录目标服务器。
(b). 将cachecloud-init.sh脚本拷贝到目标服务器当前用户目录下,然后chmod a+x cachecloud-init.sh
进行赋权。
这个注意,要放到当前用户目录下执行,如当前用户是root,就在/root目录下,按文档操作能减少很多麻烦
©. 执行 sh cachecloud-init.sh ${yourusername}
这里,如果不给定username直接执行的话,那会创建默认用户,需要调整的话,可以修改 cachecloud-init.sh文件的这个部分。
username="cachecloud-open"
password="cachecloud-open"
(d). 如果给定用户名,则需要两次确认密码 (e). 一路安装直到成功。
使用admin admin登录缓存平台
进到系统配置功能,下图红线处,资源机执行cachecloud-init.sh时配置的机器的用户名密码如果改动了,这里要做相应的改动。
进入到后台到机器管理,点击添加机器
添加机器
配置资源,这里要注意将ip和根目录进行配置,
资源下载地址,在申请集群时,会从资源下载地址进行缓存安装包的链接进行下载,如redis-3.2.12这个redis安装包,的下载地址会是 http://10.4.7.211/software/cachecloud/resource/redis-3.2.12/redis-3.2.12-make.tar.gz ,需要提前准备好相应的下载地址,否则创建集群的时候会有问题,我本地做测试,是在cachecloud-web服务器上面启动了httpd,开了80端口提供下载。
安装并启动httpd
#安装httpd
yum install httpd
#启动httpd
systemctl start httpd.service
#创建文件路径 /var/www/html 是域名的根,后台的是请求的路径
mkdir -p /var/www/html/software/cachecloud/resource/redis
#复制redis安装包文件到目录中
然后通过链接 http://10.4.7.211/software/cachecloud/resource/redis-3.2.12-make.tar.gz 就可以下载到安装文件了。
通过前台申请集群
提交后后台会有工单提醒
生成部署预览
连接到服务器上可以看到每个机器实例都正常创建的redis实例。
如果遇到中断的情况,可以去资源服务器上查下安装日志,看看原因,如下图是未安装wget导致的,也有其他原因,比如说未关闭防火墙等。
处理好以后,可以到任务管理中,以中断条件搜索任务,然后重新执行该步骤。
当RedisClusterAppDeployTask任务全部执行完成,如下图,说明集群已经创建好了。
在工单中会出现通过按钮,就可以对工单进行审批通过操作。
申请用户在应用前台就可以看到申请的集群
进行集群可以看到集群的信息。
小功告成!