Rancher1.6安装和使用

  

一 下图是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或其它边缘软件做统一出口代理

    详情安装方式和使用方式,如果有需要后期我可以补上,看看小伙伴是否需要 ^_^

 

原文地址:https://www.cnblogs.com/l729414559/p/14952938.html