美文网首页
Docke离线部署Redis集群

Docke离线部署Redis集群

作者: 会飞的鱼Coo | 来源:发表于2018-07-20 11:00 被阅读66次

    1、离线安装Docker环境

    参考:CentOS/RedHat 6.5 离线安装Docker

    1)根据离线下载的依赖包安装Docker

     # cd /usr/local/src/docker        
    
     # rpm -ivh lxc-libs-1.0.9-1.el6.x86_64.rpm
      
     # rpm -ivh lua-alt-getopt-0.7.0-1.el6.noarch.rpm
    
    # rpm -ivh lua-filesystem-1.4.2-1.el6.x86_64.rpm
    
    # rpm -ivh lua-lxc-1.0.9-1.el6.x86_64.rpm
    
     # rpm -ivh lxc-1.0.9-1.el6.x86_64.rpm
    
     # rpm -ivh docker-io-1.7.1-2.el6.x86_64.rpm
    

    2)运行docker -d命令

    2、ruby、rubygems环境

    a)ruby

    下载ruby-2.4.4.tar.gz
    
    解压安装文件,tar -xvf ruby-2.4.4.tar.gz
    
    进入文件夹,cd ruby-2.4.4
    
    配置,./configure -prefix=/usr/local/ruby
    
    编译,安装make && make install
    
    修改环境变量,$PATH
    
    ruby -v
    
    rubygems
    

    b)下载rubygems-2.7.6.tgz

    解压之后,会有rubygems-2.7.6目录,进入这个目录。
    执行命令,

    ruby setup.rb
    gem -v
    

    c)安装ruby-redis插件

    下载redis-3.3.3.gem,执行安装命令:

     gem install redis-3.3.3.gem
    

    d)报错处理:

    #gem install redis报错:Unable to require openssl, install OpenSSL and rebuild ruby
    执行ruby setup.rb报错
    安装ruby-redis插件报错
    

    缺少了zlib包

    a、下载zlib-1.2.8.tar.gz包
    cd /usr/local
    mkdir zlib
    tar -vxf zlib-1.2.8.tar.gz
    cd zlib-1.2.8/
    ./configure --prefix=/usr/local/zlib
    make  && make install
    
    b、编译 ruby 中的zlib:

    cd /usr/local/ruby-2.4.4/ext/zlib/
    ruby extconf.rb --with-zlib-include=/usr/local/zlib/include/ --with-zlib-lib=/usr/local/zlib/lib
    make

    报错,解决办法:执行完extconf.rb之后会生成一个Makefile vim Makefile
    把$(top_srcdir) 换成../../
    然后再make
    make install

    c、错误都解决之后,回到安装rubygems的步骤。

    进入rubygems的安装目录,执行ruby setup.rb
    cd /usr/local/rubygems/rubygems-2.7.6
    ruby setup.rb
    安装成功

    缺少OpenSSL

    a、下载openssl-1.0.2h.tar.gz
    # tar -xzvf openssl-1.0.1s.tar.gz 
    # cd openssl-1.0.1s 
    # ./config -fPIC--prefix=/usr/local/openssl enable-shared 
    # ./config -t 
    # make && make install
    
    b、进入ruby源码目录下的ext/openssl目录
        #cd ../ruby-2.4.4 
        # cd ext/openssl 
        # ruby extconf.rb 
        checking for t_open() in -lnsl... no 
        checking for socket() in -lsocket...no 
        checking for assert.h... yes 
        checking for openssl/ssl.h... no
    
      提示没有找到ssl.h, 因为出现了错误:openssl/ssl.h:没有那个文件或目录rubyextconf.rb --with-openssl-include=/usr/local/openssl/include/--with-openssl-lib=/usr/local/openssl/lib 
        checking for t_open() in -lnsl... no 
        checking for socket() in -lsocket...no 
        checking for assert.h... yes 
        checking for openssl/ssl.h... yes 
        .............................................中间略............................................. 
        checking for EVP_CTRL_GCM_GET_TAG inopenssl/evp.h... yes 
        creating extconf.h 
        creating Makefile 
        
      vim Makefile 把所有的 $(top_srcdir) 换成 ../.. 注意替换所有
      make && make install
      将ruby 源码目录下的include目录软链接到 / 目录下:
      [root@localhost openssl]#ln -s /usr/local/src/ruby-2.4.4/include  /
      make && make install
    

    问题已经解决好了,再次使用gem install 安装 ruby redis 接口

    #gem sources --remove https://rubygems.org/
    

    (这一步一定要执行不然下面执行gem install时会去链接该网址,连不上有可能执行不了下一步)

    #gem install -l redis-3.3.3.gem
    

    ruby redis接口安装成功就可以创建集群进行测试了

    创建集群命令:
    redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
    

    Docker中启动Redis镜像

    1)将制作好docker镜像文件 redis.tar通过docker load < redis.tar 加载到本地镜像当中

    2)通过命令启动6个redis容器命名redis01,redis02,redis03,redis04,redis05,redis06向外部暴露出一个端口号

    docker run -d --name redis01 -p 30001:6379 nredis:3.2.8
    docker run -d --nameredis02  nredis:3.2.8
    docker run -d --name redis03  nredis:3.2.8
    docker run -d --name redis04  nredis:3.2.8
    docker run -d --name redis05  nredis:3.2.8
    docker run -d --name redis06  nredis:3.2.8
    

    将6个实例启动起来之后利用

    6个实例列表

    3)利用命令查到所有容器的内部的ip地址

    docker inspect redis01 redis02 redis03redis04 redis05 redis06 | grep \"IPAddress\"| grep 172
    

    4)利用redis-trib.rb进行集群划分
    ./redis-trib.rb create --replicas 1 + 容器ip:容器端口(6379) 这里写第三步获得的ip加6379端口号.

    相关文章

      网友评论

          本文标题:Docke离线部署Redis集群

          本文链接:https://www.haomeiwen.com/subject/fmsfmftx.html