Rancher容器编排
什么是Rancher
是一个开源的企业级PaaS容器管理平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。可以使用任何公有云或者私有云的Linux主机资源。Linux主机可以是虚拟机,也可以是物理机Rancher仅需要主机有CPU,内存,本地磁盘和网络资源,从Rancher的角度来说,一台云厂商提供的云主机和一台自己的物理机是一样的。能够非常方便的进行容器编排与调度。
安装
安装启动(下载很会慢)
docker run -d --restart=unless-stopped -p 8888:8080 rancher/server
我们访问宿主机的8888端口就可以访问了,右下角可以设置为中文显示。默认是没有账号密码的,我们可以在访问控制里面设置账号密码。
创建环境
我们开发可能分为 测试、预发布、正式环境。首先需要在环境管理里面创建环境。还可以为环境指定可访问用户,以及相应的读写权限。
添加主机
比如我们创建好了一个测试环境分组,那么就可以为该分组指定服务器信息了。首先指定 rancher 地址,点击保存。
然后指定运行 rancher-server 的地址(申明这是服务端,如果是客户端留空即可),再将下面的 命令 复制到客户端去执行。我们的服务端也需要像 客户端 一样被 rancher 管理,所以我们服务端也是要执行这个命令的。
添加完之后刷新,就可以在 “基础架构——主机” 里面看到注册上去的主机了(可能要几十秒,注册要时间)。同理也可以看到服务器里面的容器。
添加应用
添加好主机后。在 “应用” 里面我们选择 “用户” ,点击添加应用。(下面是导入容器的配置,跳过不选。)
添加服务(部署容器)
redis
首先,比如我们要安装 reids 镜像,不知道版本号。可以在 https://hub.docker.com/ 里面搜索 redis ,然后找到 redis 镜像,选择 tag ,就可以看到它的各个版本号。比如我们现在需要安装 redis:6.2.4 。可以在这里复制对应的版本号。
【指定名称 & 端口映射】在这里就可以指定容器名称和端口映射。等同于docker 的 --name -p 命令(填入我们刚才复制好的版本号)
【指定运行机器】
【磁盘映射】等同于docker 的 -v 命令
【启动命令】比如 密码 123456 redis-server --appendonly yes --requirepass 123456
创建完成过,他就会自动启动,后续想改配置点击升级就好。升级完还可以回滚。
rabbitmq
docker run -d --hostname rabbit_host1 --name rabbitmq1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=wulei --privileged=true -v /usr/local/rabbitmq/1/lib:/var/lib/rabbitmq -v /usr/local/rabbitmq/1/log:/var/log/rabbitmq rabbitmq:3.8.14-management
mysql
docker run -p 3307:3306 --name wulei_mysql -v /usr/local/docker/mysql/conf:/etc/mysql -v /usr/local/docker/mysql/logs:/var/log/mysql -v /usr/local/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=wulei -d mysql:5.7
容器迁移
我们在测试环境部署好应用所需容器后,后续上线不可能自己在部署一套,那么直接将测试环境的配置导出即可,然后在正式环境创建应用的时候,导入配置文件。
动态扩容
系统运行可能会遇到高峰时期,为了缓解单个服务的压力,我们可以直接点击左边按钮 扩/缩容。
但是这样还是不够智能化,我们应该希望是根据流量动态判断是否需要阔扩容。我们可以在 “API ——> Webhooks” 里面添加接收器,可以指定 扩/缩容 的规则,然后我们就会得到一个地址,通过post请求执行这个地址,就会自动执行我们这个 扩/缩容 的规则。然后我们可以通过脚本 监控服务器压力 或 请求量,来动态执行这个地址就好了。
。