一 下图是rancher官方的1.6示意图
简介
本文介绍的1.6版本不是基于kubernetes编排引擎,而是Rancher自己的Cattle。
Cattle 可以编排docker-compose类型的文件,这种方式适合容器入门者使用,也可以适合中小规模范围容器编排使用,它的优点是使用简单不需要学习Kubernetes那么复杂的知识,不过它也很稳定,已经在我们旧生产环境运行好几年。
二 安装rancher1.6
1 安装数据库
容器运行,您也可以二进制或RPM或其它方式安装。
docker run --name mysql-data -v /data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="123456789" -p 3306:3306 -d mysql:5.6
2 分别在两台机器上安装rancher
这里演示的是高可用集群,如您不需要也可以安装单个节点,容器启动时映射8080端口在宿主机
docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 rancher/server \ --db-host 172.16.100.93 --db-port 3306 --db-user root --db-pass 123456789 --db-name cattle \ --advertise-address 172.16.100.91
因为是高可用,前端需要一个proxy来代理这两个rancher节点(这里采用haproxy)
同样是容器启动
docker run -d --restart=unless-stopped --name haproxy -p 8888:8888 -p 28080:28080 -v /server/config/haproxy:/usr/local/etc/haproxy:ro haproxy:1.7
haproxy的配置文件
global
chroot /usr/local
daemon
nbproc 1
pidfile /opt/haproxy/logs/haproxy.pid
ulimit-n 65536
#spread-checks 5m
#stats timeout 5m
#stats maxconn 100
########默认配置############
defaults
mode tcp
retries 3 #两次连接失败就认为是服务器不可用,也可以通过后面设置
option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
maxconn 32000 #默认的最大连接数
timeout connect 5000ms #连接超时
timeout client 30000ms #客户端超时
timeout server 30000ms #服务器超时
timeout check 2000 #心跳检测超时
log 127.0.0.1 local0 err #[err warning info debug]
listen stats #监控
mode http
bind 0.0.0.0:8888
stats enable
stats uri /stats
stats realm Global\ statistics
stats auth admin:admin
frontend http-in
mode http
bind *:28080
#bind *:8080 ssl crt /etc/haproxy/certificate.pem
default_backend rancher_servers
# Add headers for SSL offloading
#http-request set-header X-Forwarded-Proto https if { ssl_fc }
#http-request set-header X-Forwarded-Ssl on if { ssl_fc }
acl is_websocket hdr(Upgrade) -i WebSocket
acl is_websocket hdr_beg(Host) -i ws
use_backend rancher_servers if is_websocket
backend rancher_servers
mode http
option httpchk HEAD /login HTTP/1.0
server websrv106 172.16.100.91:8080 weight 1 maxconn 1024 check
server websrv107 172.16.100.92:8080 weight 1 maxconn 1024 check
3 访问,访问haproxy地址
http://ha-proxy-host-ip:28080
4 配置 Rancher Work节点主机
安装好docker。并配置好docker配置文件参数:/etc/docker/daemon.json,如果您不知道如何配置可参考官方文档。
配置好系统内核参数,可参考官方文档优化。
5 管理Rancher
登入Rancher界面,新建您的环境(环境都是相互独立隔离的,每个环境中可以添加您的work主机"工作负载主机")
这是我的例子:
添加好环境后,进入您的某个环境中,添加工作负载主机
添加主机标签,并复制文本,到您的工作负载主机黏贴这段文本后会自动拉取agent镜像,并注册到Rancher该环境中(可能拉取镜像时间较久,需要耐心等待)
正确注册后,主机已经显示在改环境中
6 测试运行一个demo
测试一个容器,输入镜像地址
挂载卷,支持nfs(需要先安装nfs插件)、本地、其它存储需要安装插件支持
挂载方式: /存储服务器:/容器路径
调度机器,可以选择某个主机,也可以按标签调度(标签填写我们加入主机时候填写的标签,也可以在host页面查看主机的标签)
其它参数(安全/主机:可限制该容器的权限和cpu内存使用,密文:可用该方式管理密码,标签:如果主机限制了只有符合标签的容器才能在上面运行,那么标签项您就要给该容器加上,否则主机将不允许您的该容器运行)
访问:
访问主机的8888端口(该端口映射在主机上,已经暴露在主机端口,所以可以直接访问)
http://主机ip:8888
7 如何用统一的编译节点发布端口
以上方法将会在主机上暴露无数的端口,如果运行大量的容器将不好管理,如何做到工作负载主机上运行容器集群内部网络,在某个边缘节点上暴露端口访问呢?
可以用Rancher自带的Haproxy或其它边缘软件做统一出口代理
详情安装方式和使用方式,如果有需要后期我可以补上,看看小伙伴是否需要 ^_^