Rancher:https://www.cnrancher.com/
是一个开源的企业级全栈化容器部署及管理平台。
定位上和 K8s 比较接近,都是通过 web 界面赋予完全的 docker 服务编排功能。是一个可以让你通过 web 界面管理 docker 容器的平台。
rancher 的特色
-
平台部署方便。管理 docker 的平台本身也基于 docker 部署。只要你有 docker ,一句命令就完成平台的部署了。
-
平台扩展方便。通过 agent 机制,一句 docker 命令完成 agent 部署,快速增加你的物理机。同时也支持 AWS 等云主机, 2.0 版本甚至还支持 K8s 。
-
服务部署方便。通过应用商店,2步完成应用部署,而且还是像 docker-compose 那样各个中间件独立编排,可以随时扩容的哦。
-
自带账户权限。相比 K8s 没有账号管理,rancher 自带账号权限体系。账号可以独立创建,也可以很方便地接入 ldap 等账号体系。对于公司使用是一大利器。
rancher 安装
- 部署 master
master 对系统基本没有要求,部署在centos 、ubantu、 mac 或者 windows 上都行。
# 下载容器
docker pull rancher/server
# 数据库数据内置。缺点是如果容器损坏了,数据就不可恢复
命令行参数解释:
docker run 的 -d 参数标示在后台运行, --restart=always 容器如果异常停止自动重启。-p 8080:8080 把 Rancher 服务器的UI 对外服务(容器内)的端口 8080 ,绑定到到宿主机的
8080 端口。 后面跟的镜像名 rancher/server ,Docker 会首先检查本地有没有这个镜像,如果没有,Docker 会去 Docker Hub 将这个镜像下载下来,并且启动。
docker run -d --restart=unless-stopped -p 8089:8080 rancher/server
# **推荐**数据库数据外置。即使容器坏了,数据还在,重新再建一个容器即可
docker run -d -v <host_vol>:/var/lib/mysql --restart=unless-stopped -p 8089:8080 rancher/server
用浏览器打开 Rancher 服务器容器 UI 界面
http://192.168.50.151:8089
Rancher 服务器配置
添加账号
首次登录,还没有配置访问权限,为了安全期间,首先点击上面的 ACCESS CONTROL 来新建一个本地账号和密码。
点击 Enable Local Authentication,打开本地验证,下次就需要输入用户名和密码才能登录了。
添加主机
主机是 Rancher 工作的节点,类似服务器虚拟化的 Hypervisor,我们现在做 All-in-one 测试,将宿主机添加到 Rancher 节点主机。
选择 APPLICATIONS 下面的 Add Host,弹出的界面选择 Custom,将页面第 4 步出现的内容复制粘贴下来。拿到宿主机的命令行执行。
部署 agent
将上述的命令拷贝到宿主机粘贴执行,agent 用到比较多的 docker 特性,建议使用 linux 机器。我用的是 centos7
agent 的启动命令可以在界面上自动生成,唯一需要填写的是 agent 所在主机的 ip 地址会自动下载 rancher/agent 镜像并运行。等待下载完毕。查看一下进程,多出一个 rancher/agent 的进程,并且已经运行。此时再回网页查看 Web 控制台界面,查看 Host 添加之后的结果。
可以看到已经多了一台活动主机(宿主机),上面运行一个 Rancher Server 容器,就是 Rancher 服务器自己。如果你有其他主机,也可以添加其他主机进来。
通过 Web UI 运行容器
现在通过图形界面来运行容器,而不是通过命令行。
添加容器
在 INFRASTRUCTURE 标签选择 CONTAINERS,选择 Add Container
1 输入 first_container 作为容器名称
2 使用默认的 Ubuntu 14.04.3 镜像
3 点击Create 按钮
经过几秒钟可以看到多出一个 first_container 容器和一个 Network Agent。first_container作为本测试创建的容器。
1 在新建的 Ubuntu 容器的菜单上点击向下按钮
2 在Web 页面中选择运行 Shell 选项
以后就可以在此操作容器了。如果您偏爱 CLI 命令行,可以直接到宿主机的命令行操作。
rancher 应用商店使用
rancher 的应用商店是它的核心功能。通过应用商店,只需要2步界面操作就可以完成一个应用的部署。
以 sonarquebe 为例:
第一步,选择应用。点击 sonarquebe 下面的【查看细节】按钮
第二步,点击启动。当然如果有需要的话,也可以选择下服务版本。其它配置如无特殊需要,一般不需要改动。
然后 sonar 服务就创建出来了。
访问地址,可以点击负载均衡的 Ports 链接,直接打开。
注意:如果是首次创建,agent 需要花几分钟下载镜像,具体耗时取决于网速。
相信聪明的朋友已经猜到了。应用商店除了官方自带的应用,我们自己也可以配置自己的应用商店哦。以后临时部署一个新的测试服务,直接2步解决。
更多
除了这些基本功能,rancher 还有很多功能。基础的有容器日志查看、shell 访问、资源占用监控等,扩展的还有多环境管理、多主机服务部署管理等。同时对容器的各种操作,也都可以通过 rancher-cli 、 rancher-compose 命令行工具或者其自带的 http api 进行控制。
扩展一下,还可以通过容器替换+http api 调用,做到快速重置数据库数据的效果(数据库数据内容事先放好到镜像中)。这对于一些经常需要 清空-重新初始化数据库的操作(例如跑自动化测试前重置数据库),可以节省下不少初始化数据耗费的时间。同时,数据库数据也通过镜像的版本管理,初步获得了版本管理。