2021/02 作者:ihunter 0 次 0
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-releaseCentOS Linux release 7.5.1804 (Core) [root@rancher-server ~]# docker --versionDocker 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/rancherUnable 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 -lntpActive 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 --workerUnable 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服务,能访问成功代表我们部署的没有问题: