Docker 容器管理:rancher

2022-12-07,,,

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

Docker 容器管理:rancher的相关教程结束。

《Docker 容器管理:rancher.doc》

下载本文的Word格式文档,以方便收藏与打印。