安装 Rancher2.x 并部署工作负载

时间:2022-07-25
本文章向大家介绍安装 Rancher2.x 并部署工作负载,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

rancher是一个开源的企业级全栈化容器部署及管理平台,官方是这么描述的:

Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件。Rancher2.0基于Kubernetes构建。使用Rancher,DevOps团队可以轻松测试、部署和管理应用程序,运维团队可以部署、管理和维护一切Kubernetes集群,无论集群运行在何基础设施之上。

rancher官方地址如下:

https://rancher.com/

中文站点地址如下:

https://www.cnrancher.com/

中文文档地址如下:

https://www.cnrancher.com/docs/rancher/v2.x/cn/overview/quick-start-guide/

本小节我们来学习一下rancher的安装,首先我们需要两台虚拟机,一台作为server,一台作为agent。两台机器的ip分别如下:

  • rancher-server : 192.168.190.129
  • rancher-server : 192.168.190.130

rancher需要在Linux系统上安装,我这里使用的是CentOS,rancher2.x要求的CentOS版本为7.5以上,所以两台机器使用的都是7.5版本。rancher对docker版本也有要求,目前只支持1.12.6、1.13.1以及17.03.2版本。不过我这里冒险用了18.03.1版本,发现也是可以用的,当然两台机器的docker版本也需要是一样的。如下:

[root@rancher-server ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core) 
[root@rancher-server ~]# docker --version
Docker version 18.03.1-ce, build 9ee9f40
[root@rancher-server ~]#

为了避免端口通信的问题,我们先关闭两台机器的防火墙以及重启一下docker:

[root@rancher-server ~]# systemctl stop firewalld
[root@rancher-server ~]# systemctl restart docker

如果不关闭防火墙,请参考官方关于端口需求的文档:

https://www.cnrancher.com/docs/rancher/v2.x/cn/installation/references/

我们首先来安装rancher server,以下简称server。在安装server之前,我们先配置一下阿里云的docker镜像加速地址,否则镜像的下载会很慢:

[root@rancher-server ~]# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://fy707np5.mirror.aliyuncs.com"]
}
[root@rancher-server ~]# systemctl daemon-reload
[root@rancher-server ~]# systemctl restart docker

使用官方提供的安装命令进行安装。执行过程如下:

[root@rancher-server ~]# docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
Unable to find image 'rancher/rancher:latest' locally
latest: 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:latest
998306bd217e9790abdeb1fd99f07918e1c85b77687620ef7cb33bd25058b1fb
[rancher-server ~]#

执行完成后,查看80、443端口是否正常监听了:

[root@rancher-server ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      5061/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2699/master         
tcp6       0      0 :::80                   :::*                    LISTEN      35351/docker-proxy  
tcp6       0      0 :::22                   :::*                    LISTEN      5061/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2699/master         
tcp6       0      0 :::443                  :::*                    LISTEN      35339/docker-proxy  
[root@rancher-server ~]#

登录Rancher

到此server端的安装就算是完成了,接下来我们登录到server端的页面上添加集群,使用浏览器访问rancher server的主页,第一次访问需要设置管理员密码:

注:因为Rancher是自动使用的自签名证书,在第一次登录会提示安全授信问题,信任即可

然后设置rancher server的url,我这里就直接使用了虚拟机的内网ip了:

完成以上设置后,即可进入到rancher server的主页,在这里我们可以设置语言为中文:

我们首先需要添加一个集群,这里选择CUSTOM自定义集群,集群的名称可自定义:

配置主机的及角色地址,这个主机也就是rancher agent:

注:如果是多台主机,根据角色的不同,需要复制多次命令

复制生成的命令到rancher agent机器上执行。执行过程如下:

[root@rancher-agent ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.0.8 --server https://192.168.190.129 --token jvl45zj649v9q4dsj2rcsrzr7fn686rsk5lhqmpphkvw8rzrt52p8b --ca-checksum db22a3cdab6aa3d3da8db954c02a166a79c3017d6b122c65ffbee2d339eb95eb --internal-address 192.168.190.130 --etcd --controlplane --worker
Unable to find image 'rancher/rancher-agent:v2.0.8' locally
v2.0.8: Pulling from rancher/rancher-agent
124c757242f8: Pull complete 
2ebc019eb4e2: Pull complete 
dac0825f7ffb: Pull complete 
82b0bb65d1bf: Pull complete 
ef3b655c7f88: Pull complete 
9750e7f516aa: Pull complete 
bbcb46cc1cac: Pull complete 
f3d67e2639ea: Pull complete 
4c9aa41b309a: Pull complete 
64cb19178381: Pull complete 
Digest: sha256:aa2a164c18ea8b2f6b235186216448a9401ff3e02af064cadea569edc07b45e3
Status: Downloaded newer image for rancher/rancher-agent:v2.0.8
0356229848f8fd4d832ea5ea9d381a783fc4a67e5c0d1d73882fd1bff353543e
[root@rancher-agent ~]# 

执行成功后,页面下方会显示新主机注册成功:

此时我们的集群处于等待注册的状态,点击主机下的数字可以查看主机信息:

主机信息如下,这会主机处于注册中的状态:

经过一段等待后,主机注册成功,转换为可用状态:

点击集群也能够看到集群的仪表盘信息了:

集群创建完成后,默认会生成Default项目,点击Default可以切换到项目视图:


部署工作负载

在rancher里工作负载是一个对象,包括pod以及部署应用程序所需的其他文件和信息。我们这里以nginx作为demo示例,在Default视图下,点击工作负载—部署服务

在部署工作负载页面,设置工作负载名称、副本数量、镜像名称、命名空间、端口映射,其他参数保持默认,不设置端口映射的话,默认是随机映射端口,我这里选择随机,最后点击启动:

部署完成:

此时我们可以通过随机映射的31671端口去访问nginx服务,能访问成功代表我们部署的没有问题: