zoukankan      html  css  js  c++  java
  • 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或其它边缘软件做统一出口代理

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

     

  • 相关阅读:
    线程等待和通知
    什么是代码?code?
    代理(正向代理)和反向代理的区别是什么?
    什么是代理,什么是代理服务器,使用代理服务器的目的是什么?
    计算领域,编码的含义到底是什么?
    linux中,通过crontab -e编辑生成的定时任务,写在哪个文件中
    linux,shell中if else if的写法,if elif
    linux,shell脚本中获取脚本的名字,使用脚本的名字。
    linux,crontab定时任务中为脚本指定使用参数,crontab的脚本中是否可以带参数
    ssh在本地调用远程主机上的命令,不登录远程主机shell
  • 原文地址:https://www.cnblogs.com/l729414559/p/14952938.html
Copyright © 2011-2022 走看看