1. 介绍
Rancher 是一个容器管理的完整解决方案,并且即将成为一个完整的容器管理平台。了解rancher的功能可以看下官方的提供的介绍视频Rancher Overview。注意看该视频需要科学上网。
详细的rancher使用建议查看rancher官方文档
2. 安装
2.1 下载镜像
# server
docker pull rancher/server
2.2 部署mysql
因为rancher需要使用mysql,所以需要启动mysql容器
docker pull mysql docker run -d --name mysqldb -e MYSQL_ROOT_PASSWORD=wkm mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
首先进入mysql bash
docker run -it --link mysqldb:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
进入mysql创建用户给rancher用
> CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8'; > GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle'; > GRANT ALL ON cattle.* TO 'cattle'@'localhost' IDENTIFIED BY 'cattle';
2.2 部署 server
使用以下方式执行容器
# Launch on each node in your HA cluster $ docker run -d --restart=unless-stopped -p 8080:8080 rancher/server \ --db-host myhost.example.com --db-port 3306 --db-user username --db-pass password --db-name cattle \ --advertise-address <IP_of_the_Node>
我这里实验时,将server部署到了10.45.10.32和10.45.10.33这两台上了,例如10.45.10.32这台上执行的命令如下:
# 注意这里的db host使用容器本身的IP,通过docker inspect xxx来获取 docker run -d --name rancher-server --restart=unless-stopped -p 8080:8080 rancher/server \ --db-host 172.17.0.2 --db-port 3306 --db-user cattle --db-pass cattle --db-name cattle \ --advertise-address 10.45.10.32
启动rancher server容器后,用docker logs rancher-server来查看是否正常启动。正常启动后效果如下:
然后就可以通过IP来访问rancher的WEB管理中心了。
右下角可以换成中文
3. 集成管理swarm
rancher功能十分强大,能集成各种第三方,当然也包括swarm。虽然该功能还处于experimental,不过swarm这么流行,相信很快就能发布正式版。这里作为测试使用,我们直接用该特性。
PS: 经过我试验发现,使用swarm最好有个5台及以上的机器,要不然似乎几个swarm相关的容器会频繁重启
3.1 创建swarm环境
然后再点击下方的add environment
创建一个swarm环境
切换到该环境,我创建的swarm环境名字为rancher_swarm
3.2 添加主机
PS: 注意每个环境有自己对应的主机集群。默认是default环境。上面切换到我们创建的SWARM集群,所以在新环境添加主机。注意SWARM集群至少需要3台主机。
点击基础架构里面主机来添加主机:
点击下方的添加主机
设定需要加入的HOST IP,根据图形界面提供的提示操作即可。主要操作就是在各个node上启动rancher/agent容器,按照图形界面上的提示启动
3.3 将主机加入swarm集群
虽然前面创建了主机,不过将node加入集群的操作,仍然需要命令解决。首先在swarm manager所在节点上查看JOIN集群的命令,然后在需要被加入的节点上执行命令。
PS : 在rancher上使用swarm的时候注意有一个坑。就是有时候会发现 swarm-swarmkit-mon-1这些容器一直无法启动。这个可能是这些node加入了错误的swarm manager。这时候在有问题的节点上执行docker swarm leave -f可以进行恢复。
4. 更多功能
rancher功能非常多,可以轻松部署企业级应用。各种图形展示也十分友好。例如可以展示容器之间的拓扑这点就非常好。更多功能读者可以自己参考官方文档了。