rancher是一个开源的企业级全栈化容器部署及管理平台,官方是这么描述的:
Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件。Rancher2.0基于Kubernetes构建。使用Rancher,DevOps团队可以轻松测试、部署和管理应用程序,运维团队可以部署、管理和维护一切Kubernetes集群,无论集群运行在何基础设施之上。
rancher官方地址如下:
中文站点地址如下:
中文文档地址如下:
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的安装,可以参考我另一篇文章:安装docker以及通过容器创建镜像
为了避免端口通信的问题,我们先关闭两台机器的防火墙以及重启一下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服务,能访问成功代表我们部署的没有问题:
来源:51CTO
作者:ZeroOne01
链接:https://blog.51cto.com/zero01/2168999?source=drt