【技术解析】如何用码头工人实现SequoiaDB集群的快速部署

  
      <李>   

    背景
    以码头工人和火箭为代表的容器技术现在正变得越来越流行,它改变着公司和用户创建,发布,运行分布式应用的方式,在未来5年将给云计算行业带来它应有的价值。它的诱人之处在于:
    1)资源独立,隔离
    资源隔离是云计算平台的最基本需求.Docker通过Linux名称空间,cgroup限制了硬件资源与软件运行环境,与宿主机上的其他应用实现了隔离,做到了互不影响。不同应用或服务以“集装箱”(容器)为单位装“船”或卸“船”,“集装箱船”(运行容器的宿主机或集群)上,数千数万个“集装箱”排列整齐,不同公司,不同种类的“货物”(运行应用所需的程序,组件,运行环境,依赖)保持独立。
    2)环境的一致性
    开发工程师完成应用开发后建立一个码头工人形象,基于这个形象创建像的容器是一个集装箱,里面打包了各种“散件货物”(运行应用所需的程序,组件,运行环境,依赖)。无论这个集装箱在哪里:开发环境,测试环境,生产环境,都可以确保集装箱里面的“货物”种类与个数完全相同,软件包不会在测试环境缺失,环境变量不会在生产环境忘记配置,开发环境与生产环境不会因为安装了不同版本的依赖导致应用运行异常。这样的一致性得益于“发货”(建立码头工人形象)时已经密封到“集装箱”中,而每一个环节都是在运输这个完整的,不需要拆分合并的“集装箱”。
    3)轻量化
    相比传统的虚拟化技术(VM),使用码头工人在cpu、内存、磁盘i/o、网络IO上的性能损耗都有同样水平甚至更优的表现.Container的快速创建,启动,销毁受到很多赞誉。
    4)构建\   INSTALLSDBSCRIPT=" installSDB。sh " \   INSTALLDIR="/opt/sequoiadb "      二进制文件副本   添加$ INSTALLBINFILE INSTALLSDBSCRIPT INSTALLDIR/美元      安装深发展软件二进制文件   运行chmod 755 INSTALLDIR/INSTALLSDBSCRIPT \美元   ,,INSTALLDIR/INSTALLSDBSCRIPT \美元   ,,rm INSTALLDIR/INSTALLSDBSCRIPT美元* *   

    其中installSDB.sh脚本内容如下:

      
     <代码> chmod 755 INSTALL_DIR/INSTALL_BIN_FILE美元
      INSTALL_DIR/INSTALL_BIN_FILE美元——无人值守模式
      rm INSTALL_DIR/INSTALL_BIN_FILE美元
      echo服务sdbcm开始的祝辞祝辞/root/.bashrc  
      

    需要注意的是本例采用Sequoiadb企业版2.8.4,您也可以从巨杉官网下载社区版(选择tar包,下载然后解压),替换本例中的介质名称。
    巨杉官网下载地址:http://download.sequoiadb.com/cn/

      

    步骤2:创建镜像
    根用户执行:
    <代码>码头工人构建- t sequoiadb: 2.8.4。
    如果是普通用户,需要使用sudo:
    <代码> sudo码头工人构建- t sequoiadb: 2.8.4。

      

    步骤3:登陆阿里云镜像仓库
    <代码>码头工人登录,用户名=xxx registry.cn-hangzhou.aliyuncs.com
    其中xxx为您在阿里云注册的账号。

      

    目的:查看本地sequoiadb镜像id
    <代码>码头工人图片

      

    顾不上标记本地镜像,将其归入阿里云仓库
    <代码>码头工人标签04 dc528f2a6f registry.cn-hangzhou.aliyuncs.com/508mars/sequoiadb:latest
    其中04 dc528f2a6f是笔者本地sequoiadb镜像id、新的标记格式有一定要求,registry.cn-hangzhou.aliyuncs.com为阿里云仓库地址,508年火星是笔者在阿里云的用户名,sequoiadb是镜像名,最新的是标签。

      

    第六段:提交sequoiadb镜像到镜像库
    <代码>码头工人推registry.cn-hangzhou.aliyuncs.com/508mars/sequoiadb:latest

         <李>利用容器启动SequoiaDB集群
    码头工人的网络默认采用桥模式,采用桥模式的容器有如下特点:
    1)同一宿主机的容器之间可以互相ping通
    2)不同宿主机的容器之间互相平不同
    但是SequoiaDB集群要求所有节点之间是可以互通的,所以如果运行SequoiaDB的容器跑在不同宿主机上,码头工人的默认网络模式显然不合适。有很多种方法可以解决不同宿主机容器之间的连通性问题,本文只介绍编织虚拟网络这个解决方案,因为编织同时提供了一个DNS服务器的功能,有了该功能,在利用容器部署SequoiaDB集群时不再需要修改各个容器内部的/etc/主机,大大简化了自动化部署的步骤。   
  

步骤1:安装编织网络

  
 <代码> curl - s - l git。io/o/usr/local/bin/weave编织
  chmod + x/usr/local/bin/weave  
  

需要在所有宿主机安装,笔者采用了三台虚拟机作为宿主机:sdb1, sdb2和sdb3。

  

步骤2:启动编织网络

【技术解析】如何用码头工人实现SequoiaDB集群的快速部署