|
技能目标:
· 了解Rancher
· 会Rancher安装和配置
简介
在了解云计算的工程中不关心虚拟机监控程序和虚拟机是不可能的,虚拟化是云计算的核心。虚拟化技术的涵盖面很广,这在云中是很有价值的。其中包含着一个普遍的虚拟化模型—容器技术。随着Docker容器技术的不断成熟,云计算与Docker的结合也越来越紧密了。
9.1 案例分析一
9.1.1 案例概述
Kubernetes是一个强大的容器编排工具,可以帮助用户在可伸缩性系统上可靠地部署和运行容器化应用。直接安装Kubernetes的操作复杂并且容易出错。Rancher容器管理平台原生支持Kubernetes,使用户可以简单轻松地部署Kubernetes集群。
9.1.2 案例前置知识点
在使用Rancher之前,先来了解一下Rancher相关知识。
1.Rancher概述
Rancher是一个容器管理平台,专为在生产中部署容器的组织而构建。Rancher可以轻松地在任何地方运行Kubernetes,满足IT要求,并为DevOps团队提供支持。Rancher为DevOps工程师提供直观的用户界面,以管理他们的应用程序工作负载。用户无需深入了解Kubernetes概念即可开始使用Rancher。
Rancher在IT和DevOps组织中扮演的角色,如图9.1所示。Rancher包含一组有用的DevOps工具。Rancher获得了广泛的云原生态系统产品认证,包括安全工具,监控系统,容器注册表以及存储和网络驱动程序。每个团队在他们选择的公共云或私有云上部署他们的应用程序。IT管理员可以跨所有用户,群集和云获得可见性并实施策略。
图9.1 Rancher在IT和DevOps组织中扮演的角色
Rancher 2.0当前支持的Docker版本是:1.12.6、1.13.1、17.03.2。
9.1.3 案例环境
1.本案例环境
本案例环境如表9-1所示。
表9-1案例环境
实验的拓扑图,如图9.2所示。
图9.2 实验拓扑
2.案例需求
本案例的需求如下:
在服务中使用Rancher2.0部署集群并进行集群管理。
3.案例实现思路
本案例的实现思路如下:
(1)对三台主机进行系统初始化配置;
(2)在三台主机上安装并启动Docker服务;
(3)安装部署Rancher服务;
(4)使用Rancher自定义集群;
(5)使用Rancher为节点部署服务。
9.2 案例实施一
9.2.1 主机配置
在安装配置Rancher之前,需要先对主机进行基本的初始化配置,例如:设置主机名、关闭防火墙与Selinux、在hosts文件中添加地址解析、修改内核参数等。具体操作步骤如下所示。
(1)设置主机名
在三台主机上分别设置主机名。
[root@localhost ~]# hostnamectl set-hostname rancher
//在IP地址为192.168.0.10主机上设置主机名为rancher
[root@localhost ~]# bash
[root@rancher ~]#
[root@localhost ~]# hostnamectl set-hostname node1
//在IP地址为192.168.0.11主机上设置主机名为node1
[root@localhost ~]# bash
[root@node1 ~]#
[root@localhost ~]# hostnamectl set-hostname node2
//在IP地址为192.168.0.12主机上设置主机名为node2
[root@localhost ~]# bash
[root@node2 ~]#
(2)关闭防火墙与Selinux
将所有主机的防火墙与Selinux都设置为关闭状态,下面以rancher主机为例进行操作。
[root@rancher ~]# systemctl disable firewalld
[root@rancher ~]# systemctl stop firewalld
[root@rancher ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config //关闭Selinux后需要重启机器才能生效
(3)添加地址解析记录
在所有主机的hosts文件中添加hosts地址解析,下面以rancher主机为例进行操作。
[root@rancher ~]# vim /etc/hosts
192.168.23.10 rancher
192.168.23.11 node1
192.168.23.12 node2
(4)修改内核参数
在所有主机上修改内核参数并执行sysctl -p命令使配置立即生效。下面以rancher主机为例进行操作。
[root@rancher ~]# cat <<EOF >> /etc/sysctl.conf
net.ipv4.ip_forward = 1
EOF
[root@rancher ~]# sysctl -p
net.ipv4.ip_forward = 1
9.2.2 安装并启动Docker
Rancher官网中推荐使用社区版Docker CE进行部署,所以需要重新配置Docker安装源来。在所有主机上安装Docker CE,下面以rancher主机为例进行操作。
[root@rancher ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
//安装依赖包
[root@rancher ~]# yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
//添加Docker-ce软件包源
已加载插件:fastestmirror, langpacks
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
[root@rancher ~]# yum install -y docker-ce //安装Docker CE
[root@rancher ~]# systemctl start docker
[root@rancher ~]# systemctl enable docker
9.2.3 部署Rancher
安装完Docker后,在rancher主机上使用Docker创建并运行Rancher容器,具体操作如下所示。
[root@rancher ~]# docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:stable
Unable to find image 'rancher/rancher:stable' locally
stable: Pulling from rancher/rancher
124c757242f8: Pull complete
2ebc019eb4e2: Pull complete
dac0825f7ffb: Pull complete
82b0bb65d1bf: Pull complete
ef3b655c7f88: Pull complete
437f23e29d12: Pull complete
52931d58c1ce: Pull complete
b930be4ed025: Pull complete
4a2d2c2e821e: Pull complete
9137650edb29: Pull complete
f1660f8f83bf: Pull complete
a645405725ff: Pull complete
Digest: sha256:6d53d3414abfbae44fe43bad37e9da738f3a02e6c00a0cd0c17f7d9f2aee373a
Status: Downloaded newer image for rancher/rancher:stable
87c4893fea3250adb02857f1244d27ef6abb97de6bb4529e0d21fea9c7456515
上述命令执行完后,在浏览器中输入http://192.168.0.10访问Rancher图形界面控制台,如图9.23所示。
图9.23 Rancher图形界面控制台
首次访问时需要为默认管理员admin用户设置密码,本章中密码设置为123.com,如图9.34所示。如果认为设置的密码过于简单,也可以勾选下面的"Use a new randomly generated password"选项就会出现一个新生成的随机密码,可使用该密码为管理员admin用户的密码。
图9.3 4 为admin用户设置密码
设置完密码后单击"Continue"按钮,进入"Rancher Server URL"设置界面,如图9.45所示。URL即可以是IP地址,也可以是主机名,但必须保证集群中的每一个节点都能够访问该URL。
图9.45 设置Rancher Server URL
设置完URL之后,单击"Save URL"按钮即可进入Rancher图形管理界面,该界面中默认语言为英文,单击右下角的语言设置的下拉菜单选择"简体中文",页面显示语言即可更换为中文,如图9.56所示。
图9.56 设置显示语言
9.2.4 自定义集群
从Rancher 2.0开始,Rancher中的每个集群都将基于Kubernetes。用户可以充分利用Kubernetes的强大性能及其迅速壮大的生态系统。
RKE(Rancher Kubernetes Engine)是一个用Golang编写的Kubernetes安装程序。
在Rancher中使用Docker Machine和RKE可以在内部部署的裸机服务器上可以创建Kubernetes集群,这是Rancher自己的轻量级Kubernetes安装程序,极为简单易用,用户不需要做大量的准备工作,即可拥有闪电般快速的Kubernetes安装部署体验。除裸机服务器外,RKE还可以通过与节点驱动程序集成在任何IaaS提供商上来创建集群。
在Rancher中创建集群,需要访问要用作Kubernetes集群的服务器。根据Rancher的要求配置每个服务器,其中包括一些硬件规范和Docker。在每台服务器上安装Docker后,运行Ranche中提供的命令将每台服务器转换为Kubernetes节点。Kubernetes集群创建的具体步骤如下所示。
(1)添加群集
可以在Rancher管理页面中单击"添加集群"->"添加主机自建Kubernetes集群",并设置"集群名称"为"rancher-1",其他配置保持默认即可,如图9.67所示。
图9.6 7添加集群
(2)自定义主机运行命令
添加集群之后,还需要单击图9.6中的"下一步"按钮编辑主机选项来更新节点主机注册命令,在"自定义主机运行命令""主机角色"配置项中选择全部如图9.78所示。复制图中的docker run命令,粘贴到Node节点上执行,然后点击"完成"按钮即可。
图9.7 8 自定义主机运行命令
因为Node节点需要下载多个Docker镜像,所以注册过程可能会比较慢。注册完成后,单击集群名称"rancher-1"即可出现如图9.89所示界面查看集群信息。
图9.89 集群状态信息
若想在集群中添加多个主机,在相应的Node节点中执行上述的docker run命令即可,Rancher会自行完成后续工作。
9.2.5 部署服务
当Node节点注册成功后,就可以通过Rancher在节点中部署服务。
(1)工作负载
在"rancher-1"配置项的下拉菜单中选择"Default"对群集进行默认配置。如图9.910所示。
图9.910 进入集群默认配置界面
在"工作负载"界面中单击"部署服务"进入"部署工作负载"界面。在该界面中设置"名称"为"myapp","Docker Image"字段中输入"rancher/hello-world"(此字段区分大小写)。其他配置保持默认,点击"启动"按钮进行部署,如图9.101所示。
图9.10 1 部署工作负载
当工作负载完成部署时,会为其分配一个"Active"状态,可以在"工作负载"页面查看此状态,如图9.112所示。
图9.112
(2)负载均衡
单击"负载均衡""添加Ingress"即可进入"添加Ingress"的界面,如图9.123所示。
图9.123 进入"添加Ingress"的界面
在"添加Ingress"界面中设置"名称"为"hello"、"目标服务"为之前创建的工作负载myapp、"端口"为80,其他配置项默认,点击"保存"进行部署,如图9.134所示。
图9.134 添加Ingress
部署完成后,在" 负载平衡"页面中单击"目标"下方的链接出现如图9.145所示的执行结果说明,服务部署成功。链接看起来像hello.default.xxx.xxx.xxx.xxx.xip.io > hello-world。
声明:以上内容来源于网络,如有侵权请联系我们(123@shiyan.com)删除! |
|