在线安装

注意事项:

1.server建议配置为4vCPUs+8G内存,agent建议2vCPUs+4G内存,这样可以保证相对稳定的运行。且官方建议生产环境server和agent不要装在同一台机器上,否则启动容器时会端口冲突启动失败,如需装在同一台机器上,也很简单,只需要在启动rancher/server时修改映射的容器外部端口就行,后续有提到怎么解决。

2.执行17步下载完镜像后,建议打开docker日志查看rancher/server容器的启动情况,命令:docker logs 容器ID。实时查看日志,添加 -f  参数:docker logs -f 容器ID。

1.准备两台最小化安装的虚拟机,本次测试使用centos7.6,官方建议centos系列应不低于7.5(宿主机配置:win10-4核8线程24G内存)

虚拟机资源有限,此配置测试运行过程不是特别稳定,估计是server的CUP资源不够。有条件建议配置越高越好,rancher2还是比较吃资源的

192.168.44.100  server   2核4线程 8G内存 50G存储
192.168.44.110  agent    2核4线程 8G内存 50G存储

2.两台机器是新装的虚拟机,先配置网络,再使用xshell5连接服务器完成后续操作。

两台机器配置方式一样,修改IP信息分别执行就行,centos7.6的配置文件是这个:/etc/sysconfig/network-scripts/ifcfg-ens33

修改静态IP

sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=static/g' /etc/sysconfig/network-scripts/ifcfg-ens33

修改启动时激活网卡

sed -i 's/ONBOOT=no/ONBOOT=yes/g' /etc/sysconfig/network-scripts/ifcfg-ens33

添加IP、子网掩码、网关、DNS

cat >> /etc/sysconfig/network-scripts/ifcfg-ens33 <<-EOF
IPADDR=192.168.44.100
 NETMASK=255.255.255.0
 GATEWAY=192.168.44.2
 DNS1=114.114.114.114
 EOF

重启网卡

systemctl restart network

3.在两台服务器添加hosts解析记录并修改主机名

修改/etc/hosts文件

cat >> /etc/hosts <<-EOF
 192.168.44.100 server
 192.168.44.110 agent
 EOF

修改主机名,主机名不能重复

server虚拟机:hostnamectl set-hostname server

agent虚拟机:hostnamectl set-hostname agent

4.临时关闭sellinux

sudo setenforce 0

5.修改配置文件/etc/selinux/config永久关闭selinux

sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

6.关闭防火墙及防火墙开机自启

sudo systemctl stop firewalld && systemctl disable firewalld

7.安装wget

sudo yum -y install wget

8.先备份yum源

sudo cd /etc/yum.repos.d/ && mv CentOS-Base.repo CentOS-Base.repo_bak

9.下载yum的阿里云

sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

10.清除yum源并重新建立缓存

sudo yum clean all && yum makecache

11.安装必要工具包(提供yum-config-manager命令)

sudo yum -y install yum-utils

12.添加docker-ce数据源

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && yum makecache fast

13.列出docker-ce可安装列表

sudo yum list docker-ce --showduplicates | sort -r

14.安装最新版docker-ce

sudo yum -y install docker-ce

查看docker信息

docker --version 或者 docker info(详细信息)

15.申请并配置阿里云个人免费镜像加速器,以及添加一些docker调优配置

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
 {
   "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"],
   "log-driver":"json-file",
   "log-opts": {"max-size":"100m", "max-file":"3"},
   "max-concurrent-downloads": 10,
   "max-concurrent-uploads": 10,
   "storage-driver": "overlay2",
   "oom-score-adjust": -1000
 }
 EOF

将https://xxxxxx.mirror.aliyuncs.com换成你自己的阿里加速地址

docker部署 proftpd Docker部署双节点服务_docker

16.重载配置、启动(重启)docker、加入开机自启

sudo systemctl daemon-reload && systemctl restart docker && systemctl enable docker

17.docker安装rancher2.5.2(server)

以下是使用rancher的默认证书安装,如需使用自己的证书自行查阅rancher2官方文档中心,非常详细。

rancher/server和rancher/agent在不同机器安装的,在server虚拟机执行命令安装最新稳定版rancher/rancher:stable(目前最新稳定版是2.5.2):

sudo docker run -d --restart=unless-stopped --privileged -p 80:80 -p 443:443 \
 -v /docker_volume/rancher_home/rancher:/var/lib/rancher \
 -v /docker_volume/rancher_home/auditlog:/var/log/auditlog \
 --name rancher rancher/rancher:stable

如rancher/server和rancher/agent安装在同一台机器,执行下面这句。-p参数修改容器外部访问的端口,80映射为8080,443映射为8443

sudo docker run -d --restart=unless-stopped --privileged -p 8080:80 -p 8443:443 \
 -v /docker_volume/rancher_home/rancher:/var/lib/rancher \
 -v /docker_volume/rancher_home/auditlog:/var/log/auditlog \
 --name rancher2 rancher/rancher:stable

运行命令后,docker会向镜像仓库拉取创建rancher/server:stable容器所需镜像,当镜像pull结束后,需要几分钟才能完全启动

18.登录rencher

访问地址:https://192.168.44.100:443 或者 https://192.168.44.100:8443,rancher2默认访问的是https,不确定是不是只支持https,不管了反正不重要

下图是二次登录界面。初次登录显示会有所不同,但也只需要设置admin登录密码(无限制)和同意使用协议,然后咔咔点保存就可以,登录后会先给你弹个框一堆英文,不感兴趣的直接关闭,比如我。右下角可以修改简体中文显示。

docker部署 proftpd Docker部署双节点服务_运维_02

19.添加一个集群

rancher2.5.2版本是默认有一个local集群的。2.4.x版本好像没有,也不知道哪个版本开始有的,懒得管,反正当没看见别用它就行,自己创建一个新集群。左下角显示我用的版本是2.5.3,我很懵,我明明记得安装的时候最新稳定版rancher/rancher:stable是2.5.2,难道我折腾的过程中稳定版升级到2.5.3了?辣眼睛,你们当没看到好了,此处略过:)

docker部署 proftpd Docker部署双节点服务_运维_03

sssss是我提前创建好了的集群。下面来看一下怎么创建集群,非常的简单,跳着说吧。点击【添加集群】-【自定义】,然后填写一个集群名字(名字能填写的特殊字符好像只有"-",比如rancher-server),其他默认,后期玩会了再调整。点击下一步之后,看到如下图所示:

docker部署 proftpd Docker部署双节点服务_docker部署 proftpd_04

由于我只准备了一台虚拟机安装agent,因此我选择三个角色,etcd,control,worker。选择好了点击黑框右边的复制,到agent主机ssh终端运行,同样需要拉取创建agent容器所需全部镜像。注意注意,当镜像pull完成之后就开始部署容器了,这时就需要切换到server主机ssh终端查看部署日志了,不少同学反映添加agent主机失败找不到原因,在server端的docker部署日志里可以看到。

查看日志的命令:docker logs -f <rancher/rancher:stable的容器ID>

比如我的就是下图这个,那么命令就是:docker logs -f 2ab920764f64,还有其他方式可以查看,就自行探索了。如果没报错,那么恭喜你搞定了,如果报错......好,没问题,咱下一个走起。

docker部署 proftpd Docker部署双节点服务_docker_05

20.部署工作负载

前面说到如果部署agent主机报错的话,我分享一下部署的时候遇到的错误吧,仅供参考:

一个read-only....too long的好像是错误的错误,这个不影响最终部署的完成,但是原因未找到。

一个get请求丢失,连接失败的错误。但是好像agent主机运行的时候会启动一个间隔15s的监听计划(查看agent主机日志可以看到),它会自动连接server主机完成部署,多等几分钟就可以了。如果等待很久也不行,清除所有agent主机的rancher数据(官方文档有详细的清除节点数据脚本),重新部署即可,一般都没问题。我部署了很多次都成功,主要是想调优和测试所以反复恢复虚拟机快照尝试部署。其他的没什么了。

进去正题,部署工作负载,如下图:依次点1、2、3进入sssss集群部署工作负载默认命名空间里如下图,啥都没有。我们点击【工作负载】-【部署服务】。

docker部署 proftpd Docker部署双节点服务_运维_06

部署服务界面如下图:

以部署mysql5.7为例,填写红框内的。其他的默认,启动。

docker部署 proftpd Docker部署双节点服务_linux_07


当状态变为active的坚强绿时,就可以通过数据库连接工具去连接这个MySQL了。

docker部署 proftpd Docker部署双节点服务_运维_08

端口就是映射的30001端口,用户名是root,密码就是前面设置的MYSQL_ROOT_PASSWORD的值,IP点mysql服务进去就能看到了。登录测试成功。

docker部署 proftpd Docker部署双节点服务_运维_09

总结一下:

       文档部分步骤不是必须的,各位自行斟酌使用。底子薄的同学最好先按照本文部署,以免出错,后续熟悉rancher以后再做更多的拓展和优化。rancher中文文档非常详细,有时间的同学一定要细读,能避免不少错误。rancher确实很优秀,相比纯粹的docker、k8s等,rancher管理和部署效率提升很多,页面操作也非常友好,难怪最近很火啦。当然,本篇文档只是rancher的入门级部署尝试,涉及的点窄而浅。期待后续能有更多有趣的发现。