容器管理工具 Rancher
Developer 小马 人气:0本章学习目标:
掌握容器管理工具 Rancher 的安装与使用;掌握基于 Rancher 的应用部署、扩容缩容操作。
一、容器管理工具 Rancher 介绍
Rancher 是一个开源的企业级全栈化容器部署及管理平台,其实就是一个 Docker 的图形化管理界面。它为容器提供基础架构服务,可以让 CNI 兼容的网络服务、存储服务、主机管理、负载均衡、防火墙等服务跨越公有云、私有云、虚拟机、物理机环境运行,真正实现一键式应用部署和管理。除此之外它还提供了诸如负载均衡、弹性扩容等高级功能,也是一个比较常用的运维工具。
提示:由于 Rancher 是 Docker 的界面化操作,比如应用部署等操作其实都是重复的,为避免端口互相冲突,所以建议在一个新的系统镜像中进行操作。
二、Rancher 的安装
第一步:下载 Rancher 镜像;
docker pull rancher/server
第二步:创建 Rancher 容器;
docker run -di --name=rancher -p 9090:8080 rancher/server
第三步:本地浏览器输入 虚拟机/服务器 IP:端口号 进行访问,看到如下界面即 Rancher 安装成功;
如果访问不了看看自己创建的容器是否已启动。
初始界面为英文界面,可在右下角切换中文;
三、Rancher 的初始化
1. 添加环境
Rancher 支持将资源分组归属到多个环境,每个环境都有着自己独立的基础架构资源及服务,并由一个或者多个用户、团队/组织管理。比如说:你可以创建独立的开发、测试及生产环境并确保这些环境之间的安全隔离,将开发环境的访问权限授予全部人员,而测试环境仅允许某个小的团队访问。
点击 “Default” --> “环境管理”,进入环境界面;
点击“添加环境”,输入环境名称和描述即可创建;
如下是我创建的开发、生产、测试环境,每个环境完全分离,在环境上的配置也不会互相影响;
此时选择 “Default” 可以进行环境间的切换;
2. 添加主机
选择 “基础架构” --> “主机”,点击添加主机;
默认选择的是我们的虚拟机/服务器的站点地址,点击保存;
之后会进入如下界面;
注意第五步中的代码,该代码表示创建一个 Rancher 代理容器,在需要添加 Rancher 服务的虚拟机/服务器上运行此命令,则虚拟机/服务器便会和 Rancher 服务建立联系。
复制该代码,在需要连接 Rancher 服务的虚拟机/服务器上运行,运行成功如下;
此时在 Rancher 的主机界面会增加一个主机;
3. 添加应用
此处的应用其实就是指我们的某个项目,而某个项目下面又包含着多个服务,换句话说应用其实就是服务的分组;
点击 “应用” --> “全部/用户”,然后点击 “添加应用” 按钮;
输入名称和描述后点击 “创建”;
成功后如下;
应用创建成功之后,就可以在应用上部署服务了,也就是应用部署。
四、应用部署
其实在 Rancher 中部署应用与传统方式(命令行操作)最大的区别就在于在这里所有操作都是在图形界面中进行的,更为直观,请看以下部署演示。
1. Mysql 部署
首先下载镜像 centos/mysql-57-centos7 增加数据库服务;
[root@192 ~]# docker pull centos/mysql-57-centos7 Using default tag: latest latest: Pulling from centos/mysql-57-centos7 d8d02d457314: Pull complete a11069b6e245: Pull complete 596303fb1aa3: Pull complete a29499e779a7: Pull complete 17d1a52c2e00: Pull complete ed24591227fe: Pull complete de0ad46e3ed9: Pull complete c62e4a984a9c: Pull complete 01d54c6bda68: Pull complete Digest: sha256:e08ee4d43b7356607685b69bde6335e27cf20c020f345b6c6c59400183882764 Status: Downloaded newer image for centos/mysql-57-centos7:latest docker.io/centos/mysql-57-centos7:latest [root@192 ~]#
然后在我们创建好的应用中,点击 “添加服务”;
此时就可以以图形化界面的方式来部署 MySQL 服务了,进行相关的设置;
点击 “创建”,显示 “Active” 则说明部署成功;
2. RabbitMQ 部署
下载镜像 rabbitmq:management;
[root@192 ~]# docker pull rabbitmq:management management: Pulling from library/rabbitmq 7b1a6ab2e44d: Pull complete 37f453d83d8f: Pull complete e64e769bc4fd: Pull complete c288a913222f: Pull complete 12addf9c8bf9: Pull complete eaeb088e057d: Pull complete b63d48599313: Pull complete 05c99d3d2a57: Pull complete 43665bfbc3f9: Pull complete f14c7d7911b1: Pull complete Digest: sha256:4c4b66ad5ec40b2c27943b9804d307bf31c17c8537cd0cd107236200a9cd2814 Status: Downloaded newer image for rabbitmq:management docker.io/library/rabbitmq:management [root@192 ~]#
添加服务,设置相关属性及端口映射(包含端口 5671 5672 4369 15671 15672 25672);
部署成功如下;
在浏览器访问 虚拟机/服务器 IP:15672;
RabbitMQ 安装成功。
3. Redis 部署
下载镜像 redis;
[root@192 ~]# docker pull redis Using default tag: latest latest: Pulling from library/redis a2abf6c4d29d: Pull complete c7a4e4382001: Pull complete 4044b9ba67c9: Pull complete c8388a79482f: Pull complete 413c8bb60be2: Pull complete 1abfd3011519: Pull complete Digest: sha256:db485f2e245b5b3329fdc7eff4eb00f913e09d8feb9ca720788059fdc2ed8339 Status: Downloaded newer image for redis:latest docker.io/library/redis:latest [root@192 ~]#
添加服务,设置相关属性及端口映射(端口 6379);
创建成功如下;
打开本地的 Redis 终端,输入 redis-cli -h 虚拟机/服务器 IP 进行连接,如下可正常运行,redis 部署成功;
五、扩容与缩容
扩容就是扩充容器的数量,缩容反之。在实际的运维过程中,容器需要为网站提供一个后端的支撑,当网站访问比较高的时候就需要用到更多的容器来形成容器的微服务集群,以减轻承载压力。若访问量不是那么高,则可以缩容释放出更多的空间出来。
1. 扩容
选择应用,添加新的服务 base-service,但不设置端口映射,创建完成后默认为一个容器;
此时点击 “API” --> “WebHooks”;
进入添加接收器界面,选择添加接收器,如下;
选择参数之后,点击创建,此时就为服务创建了接收器(扩缩容服务);
其实接收器就是配置了一个 URL,这个 URL 主要用 post 方式触发,也就是一个接口,使得某一个软件能够通过这个地址来调用 Rancher,Rancher 接收之后触发,然后进行相应的扩缩容操作。
此时回到服务页面,可以看到服务的容器数量为 1;
复制接收器触发地址(接口),使用本地接口测试工具调用该地址(我使用的是 ApiPost)点击发送;
此时服务的容器数量便会自动增加。
2. 缩容
缩容操作与扩容相同,此处不再赘述。
六、负载均衡器
当使用扩容和缩容服务时,我们是不设置端口映射的,那么就没办法直接访问服务,为了解决此问题,Rancher 提供了负载均衡器。当想要访问没有端口映射的服务时,就需要为该服务添加负载均衡。
点击 “添加服务” --> “添加负载均衡”;
输入端口以及目标等信息,进行创建;此时就可以通过负载均衡器的特殊服务来访问我们的服务了。
加载全部内容