# 一、Rancher简介

[Rancher](https://www.cnrancher.com/rancher/)是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。主要包括服务管理,公有云节点管理,支持第三方用户权限管理,应用商店,api很是灵活,只是文档较少,让你更多的去参考[官方文档](https://rancher.com/docs/rancher/v1.4/en/quick-start-guide)。

中文文档:https://www.rancher.cn/docs/

## Rancher结构

#### 1、基础设施编排

Rancher可以使用任何公有云或者私有云的Linux主机资源。Linux主机可以是虚拟机,也可以是物理机。Rancher仅需要主机有CPU,内存,本地磁盘和网络资源。从Rancher的角度来说,一台云厂商提供的云主机和一台自己的物理机是一样的。
Rancher为运行容器化的应用实现了一层灵活的基础设施服务。Rancher的基础设施服务包括网络, 存储, 负载均衡, DNS和安全模块。Rancher的基础设施服务也是通过容器部署的,所以同样Rancher的基础设施服务可以运行在任何Linux主机上。 #### 2、容器编排与调度 很多用户都会选择使用容器编排调度框架来运行容器化应用。Rancher包含了当前全部主流的编排调度引擎,例如Docker Swarm, Kubernetes, 和Mesos。同一个用户可以创建Swarm或者Kubernetes集群。并且可以使用原生的Swarm或者Kubernetes工具管理应用。
除了Swarm,Kubernetes和Mesos之外,Rancher还支持自己的Cattle容器编排调度引擎。Cattle被广泛用于编排Rancher自己的基础设施服务以及用于Swarm集群,Kubernetes集群和Mesos集群的配置,管理与升级。 #### 3、应用商店 Rancher的用户可以在应用商店里一键部署由多个容器组成的应用。用户可以管理这个部署的应用,并且可以在这个应用有新的可用版本时进行自动化的升级。Rancher提供了一个由Rancher社区维护的应用商店,其中包括了一系列的流行应用。Rancher的用户也可以创建自己的私有应用商店。 #### 4、企业级权限管理 Rancher支持灵活的插件式的用户认证。支持Active Directory,LDAP, Github等 认证方式。 Rancher支持在环境级别的基于角色的访问控制 (RBAC),可以通过角色来配置某个用户或者用户组对开发环境或者生产环境的访问权限。 下图展示了Rancher的主要组件和功能: ![img](ubuntu Docker安装部署Rancher.assets/1341090-20190902183045433-1082499091.jpg) ## Rancher的特性 #### 1、采用图形化方式 易用的Web管理界面,在Docker易用性的基础上,再一次降低了使用容器技术部署容器应用的难度。 #### 2、支持多种调度器 通过环境模板,很容易地创建和部署Cattle、Swarm、K8S、Mesos容器集群管理调度平台。 #### 3、管理主机集群 管理对象是多台主机的集群,而不仅仅是单台容器主机,创建和管理几台、几十台应用服务器集群,只需要Ctrl+C、Ctrl+V,复制粘贴就解决了。 #### 4、内置应用商店 使用其中的WordPress模板,创建一个WordPress博客系统,只需点点鼠标,部署难度不高于申请一个免费的电子邮箱! #### 5、资源弹性分配 内置应用负载均衡器,“服务”最小只需1个容器实例,当负载不够/或过剩时,只需点点鼠标,增加/减少“服务”中容器的实例数,即可解决问题,应用系统具有天生的弹性扩容能力。 # 二、安装Rancher服务器 关于硬件要求,请参考官方链接: https://www.rancher.cn/docs/rancher/v2.x/cn/install-prepare/requirements/ ## 环境介绍 | 操作系统 | ip | docker版本 | 角色 |
| --------------------------- | -------------- | -------------- | -------------- |
| ubuntu-16.04.4-server-amd64 | 192.168.10.104 | Docker 18.09.2 | rancher-server |
| ubuntu-16.04.4-server-amd64 | 192.168.10.108 | Docker 18.09.2 | rancher-agent | 要求:
1. 关闭selinux
2. 防火墙放行浏览器访问端口或者关闭防火墙 **注意:2台服务器已经安装好docker了!** ## 安装Rancher主机 在安装server之前,我们先配置一下阿里云的docker镜像加速地址,否则镜像的下载会很慢:

vim /etc/docker/daemon.json


内容如下:

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



重新加载docker

/etc/init.d/docker reload



创建数据库挂载目录

mkdir -p /data/rancher_server/mysql



推荐数据库数据外置。即使容器坏了,数据还在,重新再建一个容器即可

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



查看运行情况

root@ubuntu:~# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

27e65bb6ae54 rancher/server "/usr/bin/entry /usr…" 45 minutes ago Up 45 minutes 3306/tcp, 0.0.0.0:8080->8080/tcp hopeful_rosalind



查看日志

[![复制代码](ubuntu Docker安装部署Rancher.assets/copycode.gif)](javascript:void(0);)

root@ubuntu:~# docker logs -f fbac96ddb14c

Running mysql_install_db...

...

time="2019-09-03T07:33:40Z" level=info msg="Listening on :8090"

time="2019-09-03T07:33:43Z" level=info msg="Waiting for machinedriver.activate event" service=gms

...


查看日志若出现如下提示:

docker chown: changing ownership of '/var/lib/XXX': Permission denied

需要关闭selinux

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

当出现 Listening on :8090 表示启动成功了

查看rancher服务监听端口

root@ubuntu:~# netstat -antupl | grep 8080

tcp6 0 0 :::8080 :: LISTEN 5563/docker-proxy



访问测试

http://192.168.10.104:8080


效果如下: 点击右下角的Deutsch,选择语言,选择中文 ![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903153906395-1311601812.png) 中文效果如下: ![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903153926174-804880056.png) # **三、Rancher 服务器配置** ## **添加账号** 首次登录,还没有配置访问权限,为了安全期间,首先点击上面的 系统管理-->访问控制 来新建一个本地账号和密码。 ![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903154256475-1023789175.png) 选择Local,输入用户名和密码 ![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903154439986-1309528361.png) 点击启用本地验证。 ![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903154511952-1506792513.png) 提示已经启用了 ![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903154537124-876152997.png) # 四、添加主机 点击 基础架构-->主机 ![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903154702524-1779265726.png) 添加主机 ![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903154742365-368410720.png) 直接点击保存 ![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903154803213-911405961.png) copy这段命令 ![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903154901714-1966665981.png) 登录到 192.168.10.108这台机器,也就是rancher-agent 在安装agent之前,我们先配置一下阿里云的docker镜像加速地址,否则镜像的下载会很慢:

vim /etc/docker/daemon.json


内容如下:

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



重新加载docker

/etc/init.d/docker reload



运行加入命令,注意:每个环境,命令是不一样的。请以页面显示为主。

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.11 http://192.168.10.104:8080/v1/scripts/89EA1D52A25C98723969:1546214400000:XODniKMfCrisNwBj3gF24syj0



页面再次点击基础架构-->主机,就会看到新加入的主机

![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903155405117-118664289.png)

 注:说明agent-1节点添加成功!有多少个节点就添加几个,节点添加方式和agent-1的添加方式一样,就不多说了,只不过执行命令时,是在不同ip的节点主机上!切记每次点击添加主机生成的rancher注册脚本只限于一个节点,不能多个节点重复使用一个脚本。

# 五、添加容器

创建个nginx容器测试一下,点击 基础架构-->容器

![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903155648387-377498267.png)

点击添加容器

 ![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903155718672-732072726.png)

 输入名称,镜像名,以及端口号

![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903155906005-1405776927.png)

下面的,基本上,保持不变,点击保存。

![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903160029344-54623577.png)

等待30秒,容器就运行起来了

![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903160123752-1067321705.png)

登录到agent服务器,查看nginx进程。

root@ubuntu:~# docker ps|grep nginx

26478f808e4e nginx:latest "/.r/r nginx -g 'dae…" 2 minutes ago Up 2 minutes r-nginx-6d0e2e27



使用agent ip加端口80,就可以访问页面了

http://192.168.10.108/



效果如下:

![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903160414257-1944317006.png)

# 六、rancher 应用商店使用

rancher 的应用商店是它的核心功能。通过应用商店,只需要2步界面操作就可以完成一个应用的部署。

点击应用商店,这里以部署Alfresco为例,点击查看详情

![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903160531580-1158395858.png)

保持默认参数,点击启动

![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903160638110-1821403310.png)

 等待几分钟,就会变成Active状态,点击8080端口,会打开一个新的窗口

![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903161430583-1950551855.png)

新窗口效果如下:

![img](ubuntu Docker安装部署Rancher.assets/1341090-20190903161523503-1487193149.png)

注意:如果是首次创建,agent 需要花几分钟下载镜像,具体耗时取决于网速。

相信聪明的朋友已经猜到了。应用商店除了官方自带的应用,我们自己也可以[配置自己的应用商店](http://rancher.com/docs/rancher/latest/en/catalog/)哦。以后临时部署一个新的测试服务,直接2步解决。

## 更多

除了这些基本功能,rancher 还有很多功能。基础的有容器日志查看、shell  访问、资源占用监控等,扩展的还有多环境管理、多主机服务部署管理等。同时对容器的各种操作,也都可以通过 rancher-cli 、  rancher-compose 命令行工具或者其自带的 http api 进行控制。

扩展一下,还可以通过容器替换+http api 调用,做到快速重置数据库数据的效果(数据库数据内容事先放好到镜像中)。这对于一些经常需要  清空-重新初始化数据库的操作(例如跑自动化测试前重置数据库),可以节省下不少初始化数据耗费的时间。同时,数据库数据也通过镜像的版本管理,初步获得了版本管理。

Docker安装部署Rancher的更多相关文章

  1. ubuntu Docker安装部署Rancher

    一.Rancher简介 Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台.Rancher提供了在生产环境中使用的管理Dock ...

  2. 使用docker安装部署Spark集群来训练CNN(含Python实例)

    使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...

  3. Docker安装部署es集群

    Docker安装部署es集群:环境准备:已安装docker的centos服务器一台1. 拉取es版本docker pull elasticsearch:5.6.82. 新建文件夹 数据挂载目录 和 配 ...

  4. docker安装部署、fastDFS文件服务器搭建与springboot项目接口

    一.docker安装部署 1.更新yum包:sudo yum update 2.安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动 ...

  5. Docker安装部署redis

    借鉴博客:https://my.oschina.net/u/3489495/blog/1825335 待续... >>>>>>>>>docker安 ...

  6. CentOS 7 Docker安装部署Go Web

    Docker 是一种容器技术,它部署简单,能很好的进行服务隔离,生成镜像,Push到镜像仓库,其他机器一键拉取部署. Docker分为社区版CE和企业版EE,社区版是免费提供给个人和小型团队使用,企业 ...

  7. docker安装部署neo4j

    docker部署neo4j 环境:ubuntu16.04LTS docker安装 详见:菜鸟教程(docker安装) docker国内镜像源配置 第一步,进入阿里云,登陆后点击左侧的镜像加速,生成自己 ...

  8. Docker 安装部署

    Docker学习笔记 一.Ubuntu Docker 安装 (1).获取最新版本Docker安装包 lyn@lyn:/data/docker$ sudo wget -qO- https://get.d ...

  9. 002.Docker安装部署

    一 docker安装-CentOS系统 1.1 docker自动安装脚本 root@docker:~# wget -qO- https://get.docker.com/ | sh 或—— root@ ...

随机推荐

  1. 螣龙安科携手51CTO:网络安全实战课程最新发布

    一年一度的双十一狂欢节即将来临了,相信各大电商平台也正摩拳擦掌跃跃欲试中.回顾2019年,阿里巴巴双十一狂欢节的单日交易额就达到了2684亿人民币,创造了电商交易历史上新的记录. 当人们愉快地购买着自 ...

  2. VMare 设置固定IP和网段

    切换目录 cd /etc/sysconfig/network-scripts ls查看当前目录下的东西 找到ipcfg- 开头的,而且不是iocfg-lo,而上图就是那个ifcfg-ens33. 则进 ...

  3. 算法竞赛进阶指南 0x43 线段树

    目录 线段树简介 线段树的简单代码实现 建树代码 修改操作 查询操作 线段树的查询操作的时间复杂度分析: AcWing245. 你能回答这些问题吗 思路 代码[时间复杂度:\(O( \space(N+ ...

  4. .NET的求复杂类型集合的差集、交集、并集

    前言 如标题所述,在ASP.NET应用程序开发中,两个集合做比较时 我们使用微软IEnumerable封装的 Except/Intersect/Union 取 差集/交集/并集 方法是非常的方便的: ...

  5. C#委托的最简单入门和理解

      委托是.net语言中非常重要的一个概念,初学不太好理解也没有关系的,在一次一次的攻关后会领会到委托的精妙,可以说 .net 没有委托就没有后面更高级的事件,异步多线程等等特性的形成可能.所以一定要 ...

  6. Python 阿里云盾滑块验证

    本文仅供学习交流使用,如侵立删! 记一次阿里云盾滑块验证分析并通过 操作环境 win10 . mac Python3.9 selenium.pyautogui 分析 最近在做中国庭审公开网数据分析的时 ...

  7. Git 05 文件操作

    参考源 https://www.bilibili.com/video/BV1FE411P7B3?spm_id_from=333.999.0.0 版本 本文章基于 Git 2.35.1.2 文件的四种状 ...

  8. Java 数字转汉字

    阿拉伯数字转汉字 public static String number2chinese(int src) { final String num[] = {"零", "一 ...

  9. Java开发学习(二十六)----SpringMVC返回响应结果

    SpringMVC接收到请求和数据后,进行了一些处理,当然这个处理可以是转发给Service,Service层再调用Dao层完成的,不管怎样,处理完以后,都需要将结果告知给用户. 比如:根据用户ID查 ...

  10. 054_末晨曦Vue技术_处理边界情况之组件之间的循环引用

    组件之间的循环引用 点击打开视频讲解更详细 假设你需要构建一个文件目录树,像访达或资源管理器那样的.你可能有一个 <tree-folder> 组件,模板是这样的: <p> &l ...