Rancher 开源私有云(Docker 容器部署及管理平台)快速体验

@老徐老徐

Sunday, 8 April 2018nginx

Rancher

Rancher是一个开源的企业级全栈化容器(Docker)部署及管理平台。

https://www.cnrancher.comgit

Rancher为容器提供一揽子基础架构服务:CNI兼容的网络服务、存储服务、主机管理、负载均衡、防御墙……github

Rancher让上述服务跨越公有云、私有云、虚拟机、物理机环境运行,真正实现一键式应用部署和管理。web

已有超过8000万次下载,15000+生产环境的应用。

搭建

虚拟机搭建 Rancher 环境

环境说明:docker

  • Mac
  • 虚拟机采用 VirtualBox
  • 容器引擎采用 Docker 17.12.1-ce
  • 容器云平台采用 Rancher 1.6.15

最终效果:json

  • 能够在 Rancher 云平台中部署 Docker 应用

预备

安装 Docker 环境

请首先下载并安装 Docker Toolbox,Docker Toolbox中包含了VirtualBox,VirtualBox能够也单独安装最新的版本。

可选:更改 VirtualBox 虚拟机的存储位置(省得占用太多主存储器的空间)浏览器

$ export MACHINE_STORAGE_PATH="//Volumes/Cloud/Virtual Machines/docker/"

下载虚拟机镜像

下载建立虚拟机用的镜像文件~/Downloads/boot2docker.iso,由于后面会屡次用到安全

https://github.com/boot2docker/boot2docker/releases/download/v17.12.1-ce/boot2docker.iso
这里采用docker-17.12.1-ce,不要用过新的版本,rancher 可能不支持

建立 Rancher 管理服务器

建立虚拟机

建立虚拟机 rancher 并登陆bash

$ docker-machine create -d virtualbox --virtualbox-boot2docker-url \
~/Downloads/boot2docker.iso rancher
$ docker-machine ip rancher
192.168.99.88
$ docker-machine ssh rancher
这里的 IP 192.168.99.88 就是 rancher 管理服务器的地址

docker-machine ssh rancher 表示登陆到虚拟机服务器

因为众所周知的缘由,Docker 下载镜像须要使用镜像服务器

在虚拟机内运行修改Docker的启动配置,加上registry-mirrors

配置(在虚拟机中执行)

$ sudo vi /etc/docker/daemon.json
{
  "registry-mirrors" : ["https://xxxxx.mirror.aliyuncs.com"]
}
https://xxxxx.mirror.aliyuncs... 是你本身私有的阿里云镜像地址,请去下列地址得到

https://cr.console.aliyun.com/

重启(在虚拟机中执行)

$ sudo reboot now

从新进入虚拟机

$ docker-machine ssh rancher

启动 Rancher Server(在虚拟机中执行)

$ docker run -d --restart=unless-stopped --name rancher -p 8888:8080 rancher/server
Rancher Server 自己是一个 Docker 容器

启动时间有点长,请耐心等待,能够用日志查看一下进度(在虚拟机中执行)

$ docker logs -f rancher

浏览器访问

http://192.168.99.88:8888
若是不能访问,多是尚未启动完毕,请等待一段时间

首次登陆,尚未配置访问权限,为了安全起见,首先点击上面的 ACCESS CONTROL 来新建一个本地帐号和密码。

建立 Rancher 节点

Rancher 管理服务器链接和控制 Rancher 节点(Agent Host),要求这些 Host 上安装了 Docker 而且启动了 rancher/agent 容器

这里建立一个节点rancher01

$ docker-machine create \
-d virtualbox --virtualbox-boot2docker-url \
~/Downloads/boot2docker.iso rancher01
$ docker-machine ssh rancher01

因为众所周知的缘由,Docker 下载镜像须要使用镜像服务器

在虚拟机内运行修改Docker的启动配置,加上registry-mirrors

配置(在虚拟机中执行)

$ sudo vi /etc/docker/daemon.json
{
  "registry-mirrors" : ["https://xxxxx.mirror.aliyuncs.com"]
}
https://xxxxx.mirror.aliyuncs... 是你本身私有的阿里云镜像地址,请去下列地址得到

https://cr.console.aliyun.com/

重启(在虚拟机中执行)

$ sudo reboot now

从新进入虚拟机

$ docker-machine ssh rancher01

从 Rancher Server Web 界面点击 Infrastructure -> Hosts 而且复制步骤 5 的命令行代码,相似以下:

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.10 http://192.168.99.88:8080/v1/scripts/16E1281C7B7053B1CA74:1514678400000:nx3k1p2p2AvJnWR4WHCTBfznFZ8

上述代码即用于 rancher/agent 主机注册到服务器的代码

特别注意

  • 步骤 4 的 IP 地址最好指定一下,不然可能出现两个节点自动检测到的 ip 同样,致使后面的 ipsec 不正常

在虚拟机内运行上述代码

$ 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.10 http://192.168.99.88:8080/v1/scripts/16E1281C7B7053B1CA74:1514678400000:nx3k1p2p2AvJnWR4WHCTBfznFZ8
一样的操做建立多个Rancher节点

从 Rancher Server Web 界面点击 Infrastructure -> Hosts 便可看到新节点已经加入进来!

检查是否正常

若是一切正常则:

  • 每一个 rancher 节点上 healthycheck、ipsec 等服务都应该运行正常,即全不是绿色的
  • 每一个 Host 的 IP 地址惟一
  • 能够看到各个节点分配的IP 地址 10.42.x.x
  • 进入任意一个节点后能够 ping 通另一个节点的 10.42.x.x 地址

若是healthycheck、ipsec 服务不正常,老在重启

则有多是增长节点的时候没有指定 IP,致使 rancher 自动检测出来的 IP 是错误的!!!

请检查头部的 IP 地址是否重复了,是否正确

尝试建立一个应用(Stack)

直接启动一个 nginx 镜像,看是否能正常访问

从 Rancher Server Web 界面点击 Stacks->Add Stack

Rancher 中的应用叫作 Stack,一个 Stack 能够建立多个服务
  • 点击 Add Stack
  • 输入 name = nginx
  • 点击 Create
  • 点击 Add Service
  • 输入 name = nginx,Select Image = nginx

    这里的 Select Image 即 docker 镜像的名称,你能够跑其余 docker 服务
  • 点击 Port Map,暴露端口 8080:80
  • 点击 Create
  • 等待启动完成

启动完成后,点应用nginx进去,再点击某个服务nginx,点 Ports 这个Tab页,上会显示该服务的IP地址,直接点击这个IP地址便可访问这个服务

Port Host IP
8080 192.168.99.101

结果

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

测试 LB 功能

Rancher 的 Load Balancer 其实质是一个 Haproxy

仍是刚才的服务,在 Add Service 那个地方点击 Add Load Balancer添加一个 LB 服务

  • 名字随便取,好比 nginx-lb
  • Target 里选刚才那个 Nginx 服务
  • 左边的 Port 是对外的端口,输入 8888,右边的 Port 是原服务的监听端口,输入80

    注意:这里不须要原服务暴露端口,只须要原始的监听端口便可
  • 点击 Create
  • 等待启动完成

启动完成后,点应用nginx进去,再点击某个服务nginx-lb,点 Ports 这个Tab页,上会显示该服务的IP地址,直接点击这个IP地址便可访问这个服务

Port Host IP
8888 192.168.99.101

同时,为了测试LB功能,咱们把刚才的 Nginx 服务去掉端口映射并增长到2个节点

  • 点服务进去
  • 右上角点 Upgrade
  • 去掉端口映射
  • 点 Upgrade 保存
  • 点左边的 Scale ,变成两个节点
  • 好了,等待一切调整完毕
相关文章
相关标签/搜索