前言
随着容器化的逐渐普及,以docker为基础的云原生概念也逐步有了市场,尤其是最近几年,docker的飞速发展,带动了一大批周边的生态构建,比如大家熟知的 k8s 等。
当越来越多的企业逐步开始尝试以容器化的方式部署应用服务时,一种基于容器化的编排,发布,运维等一体化的管理方案就亟需解决,于是市面上陆续出现了不少这种管理类的工具平台,比如:Openshift,蓝鲸,Rancher ,shipyard等;
不同的平台有各自的适用场景,从部署、搭建、运维等成本也不一样,本篇以**Rancher **为例,做一个详细的说明。
一、什么是 Rancher
- 官网地址:https://rancher.com ;
- 开源的企业级的Pass容器管理平台,通过rancher,企业不需要再适用一系列的开源组件从头搭建自己的容器平台了;
- Rancher提供了在生产环境下使用的管理Docker和Kubernetes的全栈化容器部署与管理平台;
二、Rancher 特性
1、作为企业级容器编排的基础设施
- 可以使用任何公有云或者私有云的linux主机资源;
- linux主机可以是虚拟机,也可以是物理机;
- Rancher 只需要主机有CPU,内存,本地磁盘和网路资源即可,即从Rancher 的角度讲,一台云厂商提供的虚拟机和自己的一台物理机是一样的;
2、集中式的容器编排与调度
- 几乎包含了当下全部主流的编排调度引擎,比如:Docker Swarm ,Kubernetes,Mesos;
- 同一个用户可以创建Swarm或者Kubernetes集群,并且可以使用原生的Kubernetes或者Swarm工具管理创建的应用;
- 除了 Swarm ,Kubernetes,Mesos 之外,Rancher还支持自己的Cattle容器编排调度引擎;
- Cattle被广泛用于编排Rancher自己的基础设施服务以及用于Swarm 集群,Kubernetes集群和Mesos集群的配置,管理与升级等;
更详细的关于 Rancher的介绍参考:rancher中文文档 ,下图是Rancher提供的核心功能图
三、Rancher 安装与部署
rancher对网络要求比较高,因为其内部包含的组件比较多,需要下载大量的安装包,部分模块的组件可能需要从中央仓库(海外拉取),所以初次安装时可能会出现拉取镜像失败的问题,如果是云服务器,建议配置镜像加速源;
最低配置:2核 8G,建议配置:4核8G,推荐使用云服务器;
1、使用docker安装Rancher
使用下面的docker命令启动rancher容器(官方也有)
docker run -d --restart=unless-stopped -p 8888:8080 rancher/server
注意点
映射端口可以根据自己的情况指定,只要与系统中其他端口不冲突即可
安装过程
初次安装时,拉取镜像可能需要花费较长的时间,需要耐心等待一会儿,待启动完毕即可
控制台访问
使用IP+端口访问rancher控制台,初次访问效果如下
如果英文看不懂,可切换右下角的语言为中文
修改密码
环境搭建好了之后,首先要做的是修改密码,否则管控台相当于是直接裸露的,点击“访问控制”进行密码修改;
注销之后再次刷新页面就来到了登录界面,输入用户名、密码即可
四、Rancher 核心功能演示
完成Rancher的安装部署之后,接下来以Rancher的核心功能为线索,体验下核心功能的使用,方便后续需要的时候可以快速查阅;
1、设置环境
在日常开发、测试与发布中,通常会涉及到多套环境,通过区分环境,可以让整个过程更加有序,管理也更方便,在rancher的管控台上,也可以创建不同的环境以应对后续的需要;
这里我们设置2个环境,一个开发环境,一个测试环境用于演示
2、应用商店
应用商店里提供了很多开发过程中可能涉及到的中间件,比如kafka,zk等,后续可以根据需要有选择的安装;
3、添加主机
通过上面的介绍,我们了解到其实Rancher的模式就是 server-client模式,比如上面安装完毕之后,这个就是Rancher的服务端,后面可以添加很多主机,这些主机就可以被server纳管,server端就可以通过控制台在安装其他服务时指定具体的某个主机;
点击保存后来到下面的页面,在红框中填写主机IP
再将图中步骤5中的一段命令拷贝到填写的主机中运行
通过上一步的操作,可以理解为当前的这台机器就纳入到Rancher进行管理了,从主机菜单也可以看到,刚刚添加的主机已经被纳管,后续可以根据需要,将更多新的机器纳入进去;
4、容器管理
点击菜单栏中的“容器”,展示出了当前主机下的所有容器,比如运行中的,停止状态的,也可以针对单个容器进行日常的管理操作,比如启动、停止、删除等操作;
以上简单介绍了Rancher管控台的常用功能,应该来说,这对大多数人来说都不难,多操作一下就会用了,接下来,让我们使用Rancher在线部署一些常用的中间件吧,通过Rancher管控台,就不需要像往常那样,比如使用docker安装mysql,需要敲一大堆的命令了,直接在线安装即可;
五、使用Rancher 部署中间件
1、部署redis6
还记得下面这个使用docker命令启动一个redis服务吗
docker run -itd --name my-redis -p 6379:6379 \
-v /usr/local/docker/redis/data:/data \
-v /usr/local/docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
redis:6.2.4 --requirepass 123456
点击添加应用
创建完毕后,点击添加服务
在这一栏主要填写容器的自定义名称,端口映射信息,redis版本号(版本号可以从中央仓库查询)
接下来,从左到的tab页,依次做如下设置
设置客户端连接密码
设置容器数据卷
其他的可以保存默认状态即可,然后点击创建,等待创建完成并启动后就可以使用了,可能过程会毕竟慢,初次启动要拉取镜像会耗费一定的时间;
进入之后,可以查看当前redis这个容器的详细信息,可以在这里对其进行日常的管理;
服务升级
升级是Rancher提供的一个个人认为很实用也很好用的功能,试想在真实的生产环境下,通常服务都是集群(多节点)部署的以确保高可用,同样来说,在日常服务升级过程中,为了保证整个系统的服务不会因为某个服务升级而中断,通常可以采用灰度升级的方式,其核心就是服务轮起,即升级某个服务时,确保集群中的另一个服务可用;
在Rancher这里,提供了类似的功能,通过配置升级相关策略,可以确保在容器升级过程中,始终有一个或多个容器可对外提供服务,具体操作如下:
点击升级
只需要对下面的界面做简单的配置即可
点击创建后,可看到如下的状态,然后点击升级完成即可,升级完成后,只会保留一个可提供服务的容器;
也可以使用客户端尝试进行连接
2、部署mysql
上面掌握了使用Rancher部署redis之后,再尝试部署一下mysql吧,下面的流程对大家来说就很简单了;
使用docker部署mysql命令
docker run -p 3309:3306 --name mysql57 \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root@123456 \
-d mysql:5.7
基础配置,名称,端口映射信息
环境变量,数据卷等
然后点击创建即可,等待容器启动完成就可以使用了
使用客户端进行连接测试
总结
本文通过较大的篇幅详细讲解了Rancher的使用,更深入的内容有兴趣的同学可以结合官网进行学习,本篇作为一个引导为看到的同学提供一个参考,希望对您有用。
版权归原作者 小码农叔叔 所有, 如有侵权,请联系我们删除。