ubuntu Docker安装部署Rancher
一、Rancher简介
Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。主要包括服务管理,公有云节点管理,支持第三方用户权限管理,应用商店,api很是灵活,只是文档较少,让你更多的去参考官方文档。
中文文档: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的主要组件和功能:

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 |
注意: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 : rancher/server
查看运行情况
root@ubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
27e65bb6ae54 rancher/server "/usr/bin/entry /usr…" minutes ago Up minutes /tcp, 0.0.0.0:->/tcp hopeful_rosalind
查看日志
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
...
当出现 Listening on :8090 表示启动成功了
查看rancher服务监听端口
root@ubuntu:~# netstat -antupl | grep
tcp6 ::: :::* LISTEN /docker-proxy
访问测试
http://192.168.10.104:8080
效果如下:
点击右下角的Deutsch,选择语言,选择中文

中文效果如下:

三、Rancher 服务器配置
添加账号
首次登录,还没有配置访问权限,为了安全期间,首先点击上面的 系统管理-->访问控制 来新建一个本地账号和密码。

选择Local,输入用户名和密码

点击启用本地验证。

提示已经启用了

四、添加主机
点击 基础架构-->主机

添加主机

直接点击保存

copy这段命令

登录到 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
页面再次点击基础架构-->主机,就会看到新加入的主机

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

点击添加容器

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

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

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

登录到agent服务器,查看nginx进程。
root@ubuntu:~# docker ps|grep nginx
26478f808e4e nginx:latest "/.r/r nginx -g 'dae…" minutes ago Up minutes r-nginx-6d0e2e27
使用agent ip加端口80,就可以访问页面了
http://192.168.10.108/
效果如下:

六、rancher 应用商店使用
rancher 的应用商店是它的核心功能。通过应用商店,只需要2步界面操作就可以完成一个应用的部署。
点击应用商店,这里以部署Alfresco为例,点击查看详情

保持默认参数,点击启动

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

新窗口效果如下:

注意:如果是首次创建,agent 需要花几分钟下载镜像,具体耗时取决于网速。
相信聪明的朋友已经猜到了。应用商店除了官方自带的应用,我们自己也可以配置自己的应用商店哦。以后临时部署一个新的测试服务,直接2步解决。
更多
除了这些基本功能,rancher 还有很多功能。基础的有容器日志查看、shell 访问、资源占用监控等,扩展的还有多环境管理、多主机服务部署管理等。同时对容器的各种操作,也都可以通过 rancher-cli 、 rancher-compose 命令行工具或者其自带的 http api 进行控制。
扩展一下,还可以通过容器替换+http api 调用,做到快速重置数据库数据的效果(数据库数据内容事先放好到镜像中)。这对于一些经常需要 清空-重新初始化数据库的操作(例如跑自动化测试前重置数据库),可以节省下不少初始化数据耗费的时间。同时,数据库数据也通过镜像的版本管理,初步获得了版本管理。
本文参考链接:
https://blog.51cto.com/13043516/2299949
https://www.cnblogs.com/YatHo/p/7851758.html
ubuntu Docker安装部署Rancher的更多相关文章
- Docker安装部署Rancher
# 一.Rancher简介 [Rancher](https://www.cnrancher.com/rancher/)是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开 ...
- 使用docker安装部署Spark集群来训练CNN(含Python实例)
使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...
- Docker 安装部署
Docker学习笔记 一.Ubuntu Docker 安装 (1).获取最新版本Docker安装包 lyn@lyn:/data/docker$ sudo wget -qO- https://get.d ...
- Docker安装部署es集群
Docker安装部署es集群:环境准备:已安装docker的centos服务器一台1. 拉取es版本docker pull elasticsearch:5.6.82. 新建文件夹 数据挂载目录 和 配 ...
- docker安装部署、fastDFS文件服务器搭建与springboot项目接口
一.docker安装部署 1.更新yum包:sudo yum update 2.安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动 ...
- ubuntu docker安装与部署java,mysql,nginx镜像
docker 安装与部署java,mysql,nginx docker 配置 安装docker $ sudo apt-get remove docker docker-engine docker.io ...
- Ubuntu Docker 安装和配置 GitLab CI 持续集成
相关文章: Ubuntu Docker 简单安装 GitLab 劈荆斩棘:Gitlab 部署 CI 持续集成 目的:在 Ubuntu 服务器上,使用 Docker 安装和配置 GitLab Runne ...
- docker安装部署neo4j
docker部署neo4j 环境:ubuntu16.04LTS docker安装 详见:菜鸟教程(docker安装) docker国内镜像源配置 第一步,进入阿里云,登陆后点击左侧的镜像加速,生成自己 ...
- Docker安装部署redis
借鉴博客:https://my.oschina.net/u/3489495/blog/1825335 待续... >>>>>>>>>docker安 ...
随机推荐
- 第02组 Alpha冲刺(4/4)
队名:十一个憨批 组长博客 作业博客 组长黄智 过去两天完成的任务:了解整个游戏的流程 GitHub签入记录 接下来的计划:继续完成游戏 还剩下哪些任务:完成游戏 燃尽图 遇到的困难:没有美术比较好的 ...
- oracle 根据身份证号计算出生日期
1.情景展示 如何根据身份证号推算出出生日期? 2.解决方案 --根据身份证号计算出生日期 SELECT DECODE(LENGTH(ID_CARD), 18, SUBSTR(ID_CARD, 7 ...
- 模拟30A 题解
A. 树 联想起远古考试时做的题 记忆的轮廓. 树上走一些步数的期望. 显然可以直接解方程. 然而复杂度$O(qn^3)$,利用树上的性质优化一下, 直接一遍dfs过程中解出来,可以$O(qnlogm ...
- c++笔试题 已迁移完成
转载 1.C和C++的特点与区别? 答:(1)C语言特点:1.作为一种面向过程的结构化语言,易于调试和维护: 2.表现能力和处理能力极强,可以直接访问内存的物理地址: 3.C语言实现了对硬件的编程操作 ...
- Features Track[STL map]
目录 题目地址 题干 代码和解释 参考 题目地址 Features Track(ACM-ICPC 2018 徐州赛区网络预赛 ) 题干 代码和解释 题意:一个动画有许多 n 帧,每帧有 k 个点,点的 ...
- 【Beta】Scrum meeting 10
目录 写在前面 进度情况 任务进度表 Beta-1阶段燃尽图 遇到的困难 照片 commit记录截图 后端代码 前端代码 技术博客 写在前面 例会时间:5.14 22:30-22:45 例会地点:微信 ...
- JAVA字符编码一:Unicode,GBK,GB2312,UTF-8概念基础
第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础 来源:holen'blog 对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16, ...
- centos7 python2.7升级至python3.5.3版本
1.wget https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tgz #下载安装包 2.tar -zxvf Python-3.5.3 ...
- 【转发】SqlServer数据库表生成C# Model实体类SQL语句
已知现有表T1 通过运行下面的sql即可,先配置表名. declare @TableName sysname = 'T1' declare @Result varchar(max) = ' /// & ...
- EChart 标题 title 样式,x轴、y轴坐标显示,调整图表位置等
示例里工作一般情况是够用了,更复杂的可以查询教程: title 官方解说:http://echarts.baidu.com/option.html#title 坐标相关: X轴:http://echa ...