Rancher 管理平台

Rancher是一个开源的全栈化企业级容器管理平台,也是全球唯一提供 Kubernetes、Mesos 和 Swarm 三种调度工具的企业级分发版和商业技术支持的容器管理平台。全图形化 UI 界面,简单易用。文档支持比较完善,特别是中文资源比较丰富。

中文网站:http://www.cnrancher.com/
最新文档(英文,201707): http://docs.rancher.com/rancher/v1.6/en/

准备一台管理机

管理机是一台安装 docker 的 64 位 Linux 主机,内核版本 3.10+(用 uname -a 检查),内存至少有 1 GB 。 假设该机器(虚拟机)配置是: hostname = manager, ip=192.168.56.100,运行 Ubuntu service 16.04。

Rancher 版本

Rancher 有两个不同的版本,不同版本将有不同的开发文档。

  • rancher/server:latest 最新的开发版本,适用于开发新功能,不适用于部署在生产环境中。
  • rancher/server:stable 最新的稳定版本,适用于部署在生产环境中。

启动 Rancher 服务

1
2
3
sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable
# Tail the logs to show Rancher
sudo docker logs -f <CONTAINER_ID>

UI 暴露在该机器 8080 端口,用浏览器访问 http://192.168.56.100:8080 ,看到 Rancher 管理界面。 第一次进入,会看到系统提示添加一台主机(Add Host)

添加主机

为简化操作,我们将添加运行 Rancher 服务器容器的主机。而在实际的生产环境中,我们建议使用专用的主机来运行 Rancher 服务器。

通过点击图形界面的 Infrastructure 标签来添加主机,然后您将会看到 Hosts 页面。Rancher 会提示您选择一个 IP 地址。这个 IP 地址必须可以被所有即将添加的主机访问到。把 Rancher 服务器的端口通过防火墙的 NAT 或者负载均衡器暴露出来,或者暴露到 Internet上在有些情况下是很有用的。如果你的主机有一个私有或者本地 IP 地址,例如: 192.168..;Rancher 将打印一个提示信息,告诉您是否确认这个 IP 地址可以被正常访问到。

在管理机选择(Add Host)。首先选择主机驱动,这里选择 “Custom”,如果是公有云则要选择驱动,如阿里云则需要先选驱动,其他都不需要改变。将下列脚本拷贝到每一台主机上运行以注册 Rancher:

1
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.2 http://192.168.56.100:8080/v1/scripts/D69929FC39FC347D0B69:1483142400000:dnVO5fqp3P62agcedsuwnNhaAo

其中:

–privileged 容器中的 root 拥有 host root 的特权。
-v /var/run/docker.sock:/var/run/docker.sock 获取了该主机 docker REST Api 访问入口。
http://192.168.56.100:8080/v1 rancher REST Api 入口。后面应该是创建主机的公有密钥等。

创建容器

使用 UI 创建容器

菜单 STACKS -> Users -> Add Stack -> Add service :如果你熟悉 docker-compose.yml 和 docker service 命令 ,设置不是问题。需要注意的是 docker-compose.yml 支持 version 2 ! 不是 3

使用默认的 ubuntu:14.04.3 镜像可以创建一个 first-Container 容器。这个容器只能启动在这个主机中,网络使用 10.42..

使用 docker 创建容器

在 host 上执行:

1
docker run -d -it --name=second-container ubuntu:14.04.2

尽管我们在 manager 机器上, 菜单INFRASTRUCTURE -> Hosts 可以看到并管理 second-container 容器,但它与 first-container 不在一个网络中。如果需要在 rancher managed 网络上,需要添加一个特殊标签:

1
docker run -d -it --label io.rancher.container.network=true ubuntu:14.04.2

注意: 这个容器在 INFRASTRUCTURE -> Hosts 中显示 standalone,它不属于任何服务或栈。

容器 UI 管理

在容器上下文菜单中,操作有:

start, stop, delete | Execute Shell,View Logs,View in API | Edit

其中:

Execute Shell 类似 docker exec xxx /bin/bash
View in API 类似 docker inspect xxx

未完待续……

坚持原创技术分享,您的支持将鼓励我继续创作!