本章学习目标:

  • 掌握容器管理工具 Rancher 的安装与使用;
  • 掌握基于 Rancher 的应用部署、扩容缩容操作。

目录

一、容器管理工具 Rancher 介绍

二、Rancher 的安装

三、Rancher 的初始化

1. 添加环境

2. 添加主机

3. 添加应用

四、应用部署

1. Mysql 部署

2. RabbitMQ 部署

3. Redis 部署

四、扩容与缩容

1. 扩容

2. 缩容

五、负载均衡器


一、容器管理工具 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 提供了负载均衡器。当想要访问没有端口映射的服务时,就需要为该服务添加负载均衡。

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

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

【云原生 • DevOps】一文掌握容器管理工具 Rancher相关推荐

  1. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  2. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  3. 一文详解云原生DevOps(认识、熟悉、上手,DevOps,Docker,Jenkins,SonarQube,Harbor)

    文章目录 一.DevOps介绍 二.Code阶段工具 2.1 Git安装 2.2 GitLab安装 三.Build阶段工具 四.Operate阶段工具 4.1 Docker安装 4.2 Docker- ...

  4. 【云原生】第二篇--容器管理工具 Docker生态架构及部署

    容器管理工具 Docker生态架构及部署 一.Docker生态架构 1.1 Docker Containers Are Everywhere 1.2 生态架构 1.2.1 Docker Host 1. ...

  5. 云原生 DevOps,模型化应用交付能力的重要性

    撰稿:溪洋 审核校对:天元.海珠 编辑&排版:雯燕 云原生正在成为企业业务创新和解决规模化挑战的加速器. 云原生带来的变革绝不限于基础设施和应用架构等技术层面,更是对于研发理念.交付流程和 I ...

  6. 云原生 DevOps,模型化应用交付能力很重要

    简介:DevOps 文化及其支撑其落地实践的自动化工具与平台能力在云原生架构渐为普及的背后,发挥了关键的价值. 撰稿:溪洋 审核校对:天元.海珠 编辑&排版:雯燕 云原生正在成为企业业务创新和 ...

  7. GitHub Action + ACK:云原生 DevOps 落地利器

    作者 | 瑶靖 来源 | 阿里巴巴云原生公众号 据信通院<中国 DevOps 现状调查报告(2020年)>显示,63% 的企业已经实践落地 DevOps,采用持续交付流水线打通开发.测试. ...

  8. 云原生 DevOps 的 5 步升级路径

    作者 | 张裕 编辑 | 雅纯 来源|阿里巴巴云原生公众号 什么是云原生 DevOps 点击查看视频:https://v.qq.com/x/page/u3220cutt7v.html 我们先通过上面一 ...

  9. 究竟什么是云原生DevOps呢?

    简介:究竟什么是云原生DevOps呢?我们认为:云原生DevOps是充分利用云原生基础设施,基于微服务/无服务架构体系和开源标准,语言和框架无关,具备持续交付和智能自运维能力,从而做到比传统DevOp ...

最新文章

  1. 嵌入式linux应用程序升级,基于嵌入式Linux平台的应用升级机制的研究与设计
  2. AI人工智能的未来?AI科技与AI教程?答案都在这里!
  3. EJB究竟是什么,真的那么神奇吗??
  4. ML之Hash_HamMingDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用汉明距离算法进行判别
  5. delphi fastreport 动态加载图片
  6. php defunct,通过swoole观察僵尸进程和孤儿进程出现和消亡
  7. 连续不等_第九讲 函数的连续性与函数的间断点
  8. python地图散点图_Python中基于Basemap的三维散点图
  9. jQuery中的ajax、jquery中ajax全局事件、load实现页面无刷新局部加载、ajax跨域请求jsonp、利用formData对象向服务端异步发送二进制数据,表单序列化(异步获取表单内容)
  10. Java Arrays.sort()函数
  11. CTU Open Contest 2019 J Beer Vison
  12. 取本周日期 C# .net
  13. 关于个人博客的相关内容
  14. 【Linux设备驱动】如何挂载和卸载驱动 lsmod insmod rmmod和modprobe
  15. 2010最有趣牛人语录100句
  16. Vue Error-报错信息:Syntax Error: Assigning to rvalue.
  17. 魅族 刷机android 6.0,乐视X900+安卓6.0 魅族Flyme6刷机包 最新6.7.12.29R付费纯净版
  18. 算法设计 - 01背包问题
  19. 神州战神笔记本开启/关闭键盘背光灯的方法,control center使用配置,控制风扇转速,减少噪音
  20. 崛起背后的隐秘故事-“机器人版 Linux”ROS

热门文章

  1. 恢复平衡0x8b,0xff,0x55,0x8b,0xec
  2. bzoj3875 【Ahoi2014】骑士游戏 spfa处理后效性动规
  3. MATLAB显示剪切板不可用,电脑剪切板不能正常启动或者使用。
  4. 基于simulink的牛鞭效应模型建模与仿真
  5. Origin Pro 8.5中对多个多图层图片进行合并
  6. 天呐!疯狂java讲义pdf第五版
  7. php+中文分词scws+sphinx+mysql打造千万级数据全文搜索
  8. cocos3D 教程
  9. 普通计算机怎么改闹铃的音乐,怎么设置闹钟铃声为自己喜欢的音乐
  10. hdmiout 68411升级