微信登录
注册忘记密码
查看: 1283|回复: 4

运维必备技能:Docker容器与云平台实战-Rancher

[复制链接]

该用户从未签到

发表于 2022-7-10 13:12:48 | 显示全部楼层 |阅读模式
技能目标:

· 了解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)删除!

该用户从未签到

发表于 2022-7-10 13:17:12 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-7-10 13:19:45 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-7-10 13:20:48 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

签到天数: 2 天

[LV.1]初来乍到

发表于 2022-7-10 13:25:22 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则