【云原生 • DevOps】一文掌握容器管理工具 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. 添加应用

此处的应用其实就是指我们的某个项目,而某个项目下面又包含着多个服务,换句话说应用其实就是服务的分组;

点击 “应用” --> “全部/用户”,然后点击 “添加应用” 按钮;
在这里插入图片描述
输入名称和描述后点击 “创建”;
在这里插入图片描述
成功后如下;

在这里插入图片描述
应用创建成功之后,就可以在应用上部署服务了,也就是应用部署。

4.访问控制设置

想设置账户密码的看这篇文章

四、应用部署

其实在 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 提供了负载均衡器。当想要访问没有端口映射的服务时,就需要为该服务添加负载均衡。

点击 “添加服务” --> “添加负载均衡”;

在这里插入图片描述
输入端口以及目标等信息,进行创建;此时就可以通过负载均衡器的特殊服务来访问我们的服务了。

实际操作

  1. 添加一个服务

在这里插入图片描述

  1. tutum/hello-world镜像为模板,创建1个测试服务,暂时只有1个容器。

在这里插入图片描述

  1. 完成测试服务的创建
    在这里插入图片描述

  2. TestProject应用中,添加负载均衡
    在这里插入图片描述

  3. 添加负载均衡-负载均衡器的数量1个-映射到主机的端口9999-目标为tutum-helloworld-容器端口为80

在这里插入图片描述

  1. 完成负载均衡器的创建-相关信息-通过IP+9999端口-可以访问到tutum-helloworld测试容器

在这里插入图片描述

  1. 通过负载均衡器192.168.3.163的8888端口访问tutum-helloworld容器
    在这里插入图片描述

  2. 1个负载均衡-1个容器的状态
    在这里插入图片描述

  3. tutum-helloworld服务的容器数量扩充到4个
    在这里插入图片描述

  4. 负载均衡和tutum-helloworld服务的关系图1
    在这里插入图片描述

  5. 1个负载均衡-1个服务(4个容器)的应用状态
    在这里插入图片描述

  6. 访问该负载均衡器的该地址 192.168.3.163的8888端口
    在这里插入图片描述

  7. 第一次点击-容器的主机名
    在这里插入图片描述

  8. 第二次点击-容器的主机名
    在这里插入图片描述

  9. 第三次点击-容器的主机名
    在这里插入图片描述

我们发现访问同一个地址和端口,每次的主机名是不一样的,说明负载均衡在起作用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值