devops 容器管理平台 rancher 简介

陈恒捷 for PPmoney · 2017年11月13日 · 最后由 阿禾 回复于 2019年06月06日 · 5841 次阅读
本帖已被设为精华帖!

前天发了个朋友圈,说 rancher 搭建 jenkins 和 sonar 效率超高,结果发现有挺多人感兴趣的, @ycwdaaaa 也鼓励我写一篇文章介绍一下。所以有了这篇文章的存在。
时间有限,无法写得很深很全,大家权当入门了解即可。

什么是 rancher

官方介绍:Rancher 是一个开源的企业级全栈化容器部署及管理平台。已有超过 1900 万次下载,4000+ 生产环境的应用。

简单的说,就是一个可以让你通过 web 界面管理 docker 容器的平台。定位上和 K8s 比较接近,都是通过 web 界面赋予完全的 docker 服务编排功能。

rancher 的特色

能够做到这么流行,总归有几板斧头的。rancher 的几个比较突出的点有:

  • 平台部署方便。管理 docker 的平台本身也基于 docker 部署。只要你有 docker ,一句命令就完成平台的部署了。

  • 平台扩展方便。通过 agent 机制,一句 docker 命令完成 agent 部署,快速增加你的物理机。同时也支持 AWS 等云主机, 2.0 版本甚至还支持 K8s 。

  • 服务部署方便。通过应用商店,2 步完成应用部署,而且还是像 docker-compose 那样各个中间件独立编排,可以随时扩容的哦。

  • 自带账户权限。相比 K8s 没有账号管理,rancher 自带账号权限体系。账号可以独立创建,也可以很方便地接入 ldap 等账号体系。对于公司使用是一大利器。

更详细的信息,建议查看官方中文站点:https://www.cnrancher.com

rancher 部署

此处以平时自己摆弄为例,以一个 master + 一个 agent 的形式部署,不使用 HA 。

如果想了解更多部署方式,建议查看官方文档:http://rancher.com/docs/rancher/latest/en/installing-rancher/installing-server/

  • 部署 master

master 对系统基本没有要求,部署在 mac 或者 windows 上都行。

# 数据库数据内置。缺点是如果容器损坏了,数据就不可恢复
docker run -d --restart=unless-stopped -p 8080:8080 rancher/server

# **推荐**数据库数据外置。即使容器坏了,数据还在,重新再建一个容器即可
docker run -d -v <host_vol>:/var/lib/mysql --restart=unless-stopped -p 8080:8080 rancher/server
  • 部署 agent

agent 用到比较多的 docker 特性,建议使用 linux 机器。我用的是 ubuntu 16.04。

agent 的启动命令可以在界面上自动生成,唯一需要填写的是 agent 所在主机的 ip 地址。

这两步做完,rancher 就可以投入使用咯!

rancher 应用商店使用

rancher 的应用商店是它的杀手级功能。通过应用商店,只需要 2 步界面操作就可以完成一个应用的部署。

以 sonarquebe 为例:
第一步,选择应用。点击 sonarquebe 下面的【查看细节】按钮

第二步,点击启动。当然如果有需要的话,也可以选择下服务版本。其它配置如无特殊需要,一般不需要改动。

然后 sonar 服务就创建出来了。

访问地址,可以点击负载均衡的 Ports 链接,直接打开。

注意:如果是首次创建,agent 需要花几分钟下载镜像,具体耗时取决于网速。

相信聪明的朋友已经猜到了。应用商店除了官方自带的应用,我们自己也可以配置自己的应用商店哦。以后临时部署一个新的测试服务,直接 2 步解决。

更多

除了这些基本功能,rancher 还有很多功能。基础的有容器日志查看、shell 访问、资源占用监控等,扩展的还有多环境管理、多主机服务部署管理等。同时对容器的各种操作,也都可以通过 rancher-cli 、 rancher-compose 命令行工具或者其自带的 http api 进行控制。

扩展一下,还可以通过容器替换 +http api 调用,做到快速重置数据库数据的效果(数据库数据内容事先放好到镜像中)。这对于一些经常需要 清空 - 重新初始化数据库的操作(例如跑自动化测试前重置数据库),可以节省下不少初始化数据耗费的时间。同时,数据库数据也通过镜像的版本管理,初步获得了版本管理。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 18 条回复 时间 点赞
思寒_seveniruby 将本帖设为了精华贴 11月14日 03:48

赞,感觉好棒的产品,深感于自己眼界的窄小,和你们的距离差距太大了。。。。。。

支持一下

这个很赞

666666.

果然平台不一样,技术领先太多了。。

牛逼,有时间实践一下。之前搞 k8s 的时候就听说 rancher 在做容器平台, 之后有机会我也研究一下能不能跟 k8s 结合起来

不二家 回复

哈哈,这个也是我们研发老大推荐我才知道的。公司内部对于新技术响应还是挺快的。

孙高飞 回复

赞~

狂师 回复

谢谢支持😊

666666 刚开始碰 docker 学习了。

比 k8s 方便实用

干货啊,赞一个

大佬,rancher 结合 ui 自动化和接口自动化有没有好的建议方法呢,怎么把 rancher 和自动化结合来呢😁 谢谢

simple 专栏文章:[精华帖] 社区历年精华帖分类归总 中提及了此贴 12月13日 14:44

刚开始学习 rancher,现在有个疑问是 rancher 怎么和 k8s 结合起来呢,如果我用的 kops 去管理 k8s 集群,我是不关心 node 的,但 rancher 里面主机这个概念还像又是对应的 node

along8846 回复

这个就不大清楚了,目前没尝试过他们的结合。

其实主机这个一般使用不用太关注,除非是运维人员。

可以通过 rancher 的 api 来完成测试环境的部署,甚至是 ui 自动化、接口自动化工具运行环境的自动创建和执行。

陈恒捷 回复

好的,谢谢,我尝试下

simple [精彩盘点] TesterHome 社区 2018 年 度精华帖 中提及了此贴 01月07日 12:08

能解决 CI/CD 自动化 服务即起即用的要去?@ 代码搬运工

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册