第16课:容器管理

第16课:容器管理 Rancher 平台架构

Rancher 是什么?

从 Rancher 中文官方文档上,我们可以了解到,Rancher 是一个开源的企业级容器管理平台。它提供了管理 Docker 和 Kubernetes 的全栈化容器部署与管理平台。有了它,企业无需再使用其他一系列开源软件从头搭建容器服务平台。

Rancher 主要由以下四部分组成。

1. 基础设施编排

Rancher 可以使用具有 CPU、内存、本地磁盘和网络资源等任何公有云或私有云的 Linux 主机资源,并可将自身的基础设施服务网络、存储、负载均衡、DNS 和安全模块通过容器的方式部署到 Linux 主机资源上。

2. 容器编排与调度

Rancher 包含了当前主流的编排调度引擎 Docker Swarm、Kubernetes、Mesos 以及其自身的 Cattle 容器编排调度引擎。Cattle 通常用于编排 Rancher 自身的基础设施服务,配置、管理和升级 Swarm 集群、Kubernetes 集群以及 Mesos 集群。

3. 应用商店

为了方便用户,Rancher 应用商店提供了一系列流行应用。Rancher 还为用户提供了自己创建应用商店的功能。

4. 企业级权限管理

Rancher 为用户提供了丰富的用户认证方式,主要支持 Active Directory、LDAP、GitHub 等认证方式。Rancher 还支持环境级别的基于角色的访问控制,方便用户通过角色配置控制用户或用户组对开发环境或者生产环境的访问权限。

Rancher 的主要功能和组件如下图所示:

enter image description here

为什么引入 Rancher 容器管理平台?

当采用微服务架构模式开发应用系统时,我们会按照业务的维度对系统进行拆分。为了方便部署、运维,我们通常还会将微服务打包成 Docker 镜像,然后利用 Docker 镜像部署应用系统,这意味着整个系统将由大量的 Docker 容器构成。如果直接利用 Docker 命令来部署、运维,将是件十分痛苦的事。

为了方便开发、运维人员对系统容器的部署、升级,引入 Docker 容器管理平台是一个不错的选择。它不但为我们提供了可视化的运维界面,还提供了主机资源管理、容器编排、扩容、缩容、资源监控、负载均衡、配置管理以及 API 调用等重要功能。

搭建 Rancher 容器管理平台

第一步,执行如下命令安装 Rancher Server:

docker run -d --restart=always -v /data/rancher/mysql:/var/lib/mysql -p 8080:8080 rancher/server

restart=always 表示 Rancher 容器暂停后总是自动重启,/data/rancher/mysql:/var/lib/mysql 表示将 Rancher 自身数据相关文件映射到宿主机目录 /data/rancher/mysql 中,8080:8080 表示将 Rancher Server 容器 8080 端口映射到宿主机 8080 端口,rancher/server 表示 Rancher Server 镜像名称。

注意:在执行上面命令之前,务必按照如下步骤配置 Docker 国内加速器,因为从国外网站下载 Rancher Server 镜像太慢了。

(1)执行下面命令创建目录:

mkdir -p /etc/docker

(2)执行如下命令新建文件 daemon.json:

vim /etc/docker/daemon.json

在文件内添加如下内容保存:

{
"registry-mirrors": ["https://dhq9bx4f.mirror.aliyuncs.com"]
}

(3)执行如下命令重新加载 Docker 守护进程:

systemctl daemon-reload

(4)重启 Docker 服务:

systemctl restart docker

第二步,在浏览器中输入 URL 地址:http://192.168.1.120:8080,浏览器显示出如下信息,说明 Rancher Server 安装成功:

enter image description here

如果你不习惯阅读英文,可以通过浏览器右下角的语言设置,切换到中文模式。

第三步,顺序点击“系统管理” -> “访问控制” -> “管理账号” -> “添加账号”,在界面上输入用户名、密码,然后点击创建管理账户。

enter image description here

第四步,输入用户名、密码登录 Rancher Server 管理界面:

enter image description here

第五步,登录进去以后,按照顺序单击“Default” -> “环境管理”,将环境模板 Cattle 的 Networking 设置为 RANCHER VXLAN,然后点击保存:

enter image description here

第六步,单击“添加环境”,输入环境名称 rancher-test,并选择环境模板 Cattle,点击创建即可。

enter image description here

第七步,按照菜单顺序,单击“基础架构” -> “主机” -> “添加主机”,然后选择 “Custom”,输入主机 IP 地址:192.168.1.7,并将自动生成的以下脚本复制到需要添加的主机上,并执行。

sudo docker run -e CATTLE_AGENT_IP="192.168.1.7"  --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.11 http://192.168.1.120:8080/v1/scripts/0D53341FEA180E7CD7D7:1514678400000:oE3pZbxfoPoBY5uGS1qQXNjrUI

enter image description here

上面脚本执行后,再次单击主机显示下图,说明主机添加成功:

enter image description here

注意:我添加了两台主机,步骤同上,读者可自行添加;为了保证主机与 Rancher Server 正常通信,需要执行 vim /etc/hosts 命令,然后在该文件中配置主机 IP 与 hostname,如 192.168.1.121 software1,然后保存 hosts 文件。

第八步,将主机加入 Rancher Server 管控之后,接下来可以按照菜单顺序依次单击“应用” -> “用户” -> “添加应用”,输入应用名称 “rancher-platform”,单击创建。接着,选择创建的应用“rancher-platform”,点击“添加服务”,在界面上输入服务名称、镜像名称,配置端口映射等信息,点击创建。

比如,我利用 Rancher 平台启动 Nginx 的一个服务,配置如下:

enter image description here

注意:除了一次添加一个服务之外,还可以在新建应用时选择 “docker-compose” 文件批量新建服务,在实战课程我会向大家演示该方式。

第九步,按照菜单顺序,依次单击 “基础架构” -> “容器”,可以看到建立的 Nginx 服务容器正常启动了,如下图所示:

enter image description here

第十步,单击容器,可以看到当前容器运行在名为“software2”的主机上。单击主机名便可看到当前主机的 IP 为 192.168.1.121,这时通过浏览器访问:http://192.168.1.121:80,出现如下页面,表明 Nginx 安装成功,如下图所示:

enter image description here

到此,Rancher 容器管理平台已经部署成功,不过它只有基本功能。Rancher平台还为开发者提供了服务升级、应用商店、设置镜像库、API 调用、配置、支持主机打标签、负载均衡等功能。

大家将该平台运用到实际项目的过程中,遇到任何问题,欢迎一起交流。

上一篇
下一篇
目录