Rancher
搭建
首先
rancher需要安装了
docker的
linux环境,我的系统版本为
[图片上传失败...(image-e97c5-1512494795345)]
在
docker的基础上启动
rancher服务器,
Rancher 服务器是一个
Docker image,所以其软件本身不需要安装,只需要执行
Docker 命令下载并且成功运行
Docker 服务器镜像即可。
执行命令
sudo docker run -d --restart=always -p 8080:8080 rancher/server
启动容器并指定端口,如果没有
rancher/server镜像会自动下载。执行完成后查看镜像与容器运行情况:


以上步骤完成后,查看本机的
ip地址,我的地址为
192.1688.1.109,在浏览器输入
http://ip:8080/ ,登录到
rancher官网,为安全起见,设置管理账户

然后进行添加主机操作,根据网站指引操作,生成一条命令,在
docker中运行
$ sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.5
http://192.168.1.109:8080/v1/scripts/9F78F0DF10BCF4216AC7:1483142400000:hSv7KrbGnhQy3IJmJWYhWvxemF4
会自动下载
rancher/agent镜像

当在宿主机中运行完成后,网站中会显示成功添加主机

Rancher
的环境
Environment在
Rancher中被定义为主要用于容器编排和管理的环境,比如
Dev或者
TEST或者
PROD环境等等。目前
Rancher支持如下四种:
Cattle/Kubernetes/Mesos/Swarm, Cattle是
Rancher自己内置的缺省的编排环境,缺省的
Default的即为
Cattle类型的。
添加
stack
、添加、升级
service
、添加负载均衡、外部服务、服务别名、服务的端口绑定、服务链接、环境变量、健康检查等
在这里添加
stack:
myapp。为其添加服务
nginx,镜像为
nginx,暴露端口
8888。

然后添加负载均衡,分担
nginx
服务的流量,在这里目标服务的端口需为镜像内部
80
端口,若设置为暴露出的
8888
端口则访问失败

通过负载均衡暴露出的端口
90访问结果如下:

再添加外部服务,指向第一个
nginx
服务,并连接其暴露出的端口
8888

然后再添加一个负载均衡,指向外部服务,暴露
91端口:

访问
91
端口,得到同样的访问结果:

在这里注意负载均衡与外部服务的区别,负载均衡需要配置服务自身的端口,而外部服务需要为其配置其所链接服务所暴露出的端口
关于环境变量、服务链接可见接下来的部署
web
项目时的具体操作。
Web
应用部署
添加
stack webapp
为其添加服务
classnet
,其中为
web
内容以及服务器tomcat。服务镜像来自之前完成
web
容器化时自己所制作镜像,该镜像以上传至阿里云私有仓库。所以在添加该服务前,首先要将私有镜像仓库添加到
rancher
的镜像仓库:

然后添加
classnet
服务,暴露端口
8899
,通过该端口访问
tomcat
,测试是否添加成功:

然后添加数据库服务,在这里选择
mysql镜像,除了配置端口,还需要为数据库设置环境变量,声明数据库访问的密码MYSQL_ROOT_PASSWORD与数据库名称MYSQL_DATABASE,这两个环境变量的具体值需要与
web项目中的配置保持一致,具体环境变量的配置可以通过查看
mysql官方镜像的说明:

再返回
classnet
服务,升级服务,设置服务连接,连接至
mysql
服务:

为网站添加负载均衡,暴露端口10086:

通过负载均衡所暴露端口访问网站主页:

网友评论