Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1368159
  • 博文数量: 244
  • 博客积分: 3321
  • 博客等级: 中校
  • 技术积分: 2704
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-26 08:17
个人简介

微信公众号:杰夫弹弹看

文章分类

全部博文(244)

文章存档

2018年(4)

2017年(32)

2016年(25)

2015年(28)

2014年(27)

2013年(34)

2012年(25)

2011年(30)

2010年(39)

分类: 云计算

2016-09-12 21:45:36

1. 安装build和运行环境依赖
# Install the latest OpenJDK.
$ sudo apt-get install -y openjdk-8-jdk

# Install autotools (Only necessary if building from git repository).
$ sudo apt-get install -y autoconf libtool

# Install other Mesos dependencies.
$ sudo apt-get -y install build-essential python-dev libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev zlib1g-dev

2. 编译 mesos 
# Change working directory.
$ cd mesos

# Bootstrap (Only required if building from git repository).
$ ./bootstrap

# Configure and build.
$ mkdir build
$ cd build
$ ../configure
$ make

其中遇到的问题
对于找不到jar的处理: 

3.  生成运行框架(例子)
# Run test suite.
$ make check

4. 运行mesos
$ cd build

# Start mesos master (Ensure work directory exists and has proper permissions).
$ sudo ./bin/mesos-master.sh --ip=127.0.0.1 --work_dir=/var/lib/mesos

# Start mesos agent (Ensure work directory exists and has proper permissions).
$ sudo  ./bin/mesos-agent.sh --master=127.0.0.1:5050 --work_dir=/var/lib/mesos



安装/运行 zookeeper 

1. 下载安装包 (其实这一步是不需要的,因为mesos的build 中集成了zookeeper,
其中的介绍, 可以直接进入 /build/3rdparty/zookeeper-3.4.*, 调到步骤2)

  wget 

2. 创建 conf/zoo.cfg

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181

3. 启动zookeeper in standalone mode

$ bin/zkServer.sh start

4. 验证zookeeper 可以正常工作
$ bin/zkCli.sh -server 127.0.0.1:2181

运行 help , ls / 命令等


对于安装zookeeper 后,mesos需要向zookeeper注册,所以原来的mesos 启动的命令需要修改如下:


$ ./bin/mesos-master.sh --zk=zk://localhost:2181/mesos    --work_dir=/var/lib/mesos  --quorum=1
$ ./bin/mesos-agent.sh --master=zk://localhost:2181/mesos  --work_dir=/var/lib/mesos


应用docker containerizers,为了使用docker 容器化,我们需要使用 --containerizers=docker,mesos
主要是 agent 启动参数修改,具体如下:

     sudo ./bin/mesos-agent.sh --master=zk://localhost:2181/mesos  --work_dir=/var/lib/mesos --containerizers=docker,mesos

因为agent 修改了,启动时候可能报错,执行以下 sudo rm -rf /var/lib/mesos/meta/slaves/latest 就行了


安装/运行 marathon

1.  安装有两种方式,一种是源码安装,另外一个是release tarball 安装
   - option1:build  from  source  
         
   - option 2:  tarball install
        wget 
2. 启动marathon
     $ sudo MESOS_NATIVE_JAVA_LIBRARY=/home/kennan/mesos-1.0.1/build/src/.libs/libmesos-1.0.1.so ./bin/start  --master zk://localhost:2181/mesos   --zk zk://localhost:2181/marathon
 
如果mesos没有注册到zookeeper 也就是 standalone mode 方式,比如 local 方式 或者 ,命令如下:
 $ sudo MESOS_NATIVE_JAVA_LIBRARY=/home/kennan/mesos-1.0.1/build/src/.libs/libmesos-1.0.1.so ./bin/start  --master local  --zk zk://localhost:2181/marathon


使用Unified Containerizer
为了减少对docker dameon的依赖,mesos引入了unified containerizer,通过对docker registry 的curl请求, 内部的isolators需要开启来支持对应的隔离。(取代docker的对于容器创建隔离的部分)。所以,为了使用这个功能,相应的agent运行的命令修改如下:

sudo ./bin/mesos-agent.sh --master=zk://localhost:2181/mesos  --work_dir=/var/lib/mesos --containerizers=mesos --image_providers=appc,docker --isolation=filesystem/linux,docker/runtime

测试:
/mesos-1.0.1/build/src$ sudo ./mesos-execute  --master=localhost:5050   --name=test   --docker_image=library/redis  --shell=false

$ sudo docker run -ti --net=host redis redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

比如,我们运行nginx,不在使用默认image里的entrypoint和cmd,而是这里自己制定:

sudo ./mesos-execute  --master=localhost:5050   --name=test2   --docker_image=library/nginx  --shell=true --command="nginx -g 'daemon off;'"

访问  就可以看到nginx 页面了


更多参考资料:
2. mesos containerizers
3. zookeeper 介绍
   
4. Unified Containerizer
阅读(765) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~