Mesos1.0.1 安装指南
1 环境
1.1 操作系统:ubuntu 16.04
虚拟机ip | 主机名 | 安装应用 |
---|---|---|
172.16.7.100 | test0 | Mesos-master |
172.16.7.101 | test1 | Mesos-master zookeeper |
172.16.7.102 | test2 | Mesos-slave zookeeper docker |
172.16.7.103 | test3 | Mesos-slave zookeeper docker |
1.2 配置4台虚拟机的hosts
sudo vi /etc/hosts
#添加下面的内容
172.16.7.100 test0
172.16.7.101 test1
172.16.7.102 test2
172.16.7.103 test3
1.3 配置免密码登录
在test0 服务器上执行
#执行ssh-keygen
ssh-keygen
#一路回车
#在~/.shh 目录生成 id_rsa,id_rsa.pub两个文件
#执行
cat id_rsa.pu > authorized_keys
chmod 600 authorized_keys
#然后将3个文件拷贝至其他3台服务器的~/.ssh目录 (我的用户名是zj)
scp ~/.ssh/* test1:/home/zj
scp ~/.ssh/* test2:/home/zj
scp ~/.ssh/* test3:/home/zj
#然后执行ssh test1测试能否免密码登录,
1.4配置 JDK:1.8和maven3.3.9
下载并解压jdk和maven至/usr/local/jdk1.8以及/usr/local/maven3.3.9
sudo vi /etc/profile
#在文件后面追加
export JAVA_HOME=/usr/local/jdk1.8
export MAVEN_HOME=/usr/local/maven3.3.9
#保存并退出
#加载环境变量
source /etc/profile
1.5 安装docker
在test2,test3上执行
sudo apt-get install docker.io
#然后把zj用户添加到docker用户组
sudo gpasswd -a ${USER} docker
#建议重启下
2 安装依赖文件以及构建mesos(在test0上执行)
2.1 安装必须的工具
sudo apt-get install -y tar wget git
2.2 安装autotools
sudo apt-get install -y autoconf libtool
2.3 安装依赖库
sudo apt-get -y install build-essential python-dev libcurl4-nss-dev libsasl2-dev libsasl2-modules libapr1-dev libsvn-dev
2.4 构建mesos1.0.1
#我的mesos安装在 /data/mesos目录下
sudo mkdir -p /data/mesos
#把安装目录指定为zj用户所有
sudo chown -R zj:zj /data/mesos
#下载mesos1.0.1
wget http://www.apache.org/dyn/closer.cgi/mesos/1.0.1/mesos-1.0.1.tar.gz
#解压
tar -zxvf mesos-1.0.1.tar.gz
#构建
cd mesos-1.0.1
mkdir build
cd build
#我是把mesos安装在/data/mesos目录下,大家可以自行自定目录
../configure --prefix=/data/mesos
make
make check
make install
#注意:在安装过程中可能会出现下面的错误
#Command Python setup.py egg_info failed with error code 1 in /tmp/pip_build_ndn/protobuf
#引起的原因是因为google-apputils和protobuf是google开源的,当然你懂的Google在国内是被墙的
#所以解决办法我是的的挂代理,当然你也可以用一些国内的源
#网上有大神给的解决方案如下:
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple google-apputils
#没有安装pip请安装sudo apt-get install python-pip
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple protobuf
2.5 拷贝mesos 文件至其他3台服务器
#在其他3台服务器先创建目录/data/mesos 并把所有在指定为用户zj
scp -rf /data/mesos/* test1:/data/mesos
scp -rf /data/mesos/* test2:/data/mesos
scp -rf /data/mesos/* test3:/data/mesos
3 配置mesos
3.1 配置master
#test0
cd /data/mesos/etc/mesos
cat mesos-master-env.sh.template > mesos-master-env.sh
#编辑mesos-master-env.sh并添加下面的配置
vi mesos-master-env.sh
#mesos日志目录
export MESOS_log_dir=/data/mesos/logs/mesos
#mesos工作目录
export MESOS_work_dir=/data/mesos/work
#master 主机名
export MESOS_hostname=test0
export MESOS_quorum=1
#ha模式需要配置zookeeper zookeeper 安装配置请在网上找
export MESOS_zk=zk://test1:2181,test2:2181,test3:2181/mesos
#添加master文件
vi masters
#添加
test0
test1
#添加slaves文件
vi slaves
#添加
test2
test3
#拷贝mesos-master-env.sh配置文件到test1
scp mesos-master-env.sh test1:cd /data/mesos/etc/mesos
#拷贝masters,slavers到其他3台服务器
scp masters test1:/data/mesos/etc/mesos
scp slaves test1:/data/mesos/etc/mesos
scp masters test1:/data/mesos/etc/mesos
scp slaves test1:/data/mesos/etc/mesos
scp masters test1:/data/mesos/etc/mesos
scp slaves test1:/data/mesos/etc/mesos
#在test1上修改配置mesos-master-env.sh中
export MESOS_hostname=test1
3.2配置slave
#test2
cat mesos-agent-env.sh.template > mesos-agent-env.sh
vi mesos-agent-env.sh
export MESOS_master=zk://test1:2181,test2:2181,test3:2181/mesos
export MESOS_log_dir=/data/mesos/logs/mesos
export MESOS_work_dir=/data/mesos/run/mesos
export MESOS_hostname=test2
export MESOS_systemd_enable_support=false
#配置slave支持docker
export MESOS_containerizers=docker,mesos
#docker_store_dir默认为/tmp/run/docker 为了避免权限问题配置到下面的目录
export MESOS_docker_store_dir=/data/mesos/run/docker
export MESOS_executor_registration_timeout=10mins
#拷贝配置文件到test3
scp mesos-agent-env.sh test3:/data/mesos/etc/mesos
#修改test3的mesos-agent-env.sh文件
export MESOS_hostname=test3
3.3配置deploy
#test0
cat mesos-deploy-env.sh.template > mesos-deploy-env.sh
#拷贝至其他3台服务器,拷贝命令省了
4 运行mesos
#在任意服务器上执行
/data/mesos/sbin/mesos-start-cluster.sh
#访问 http://test0:5050 能成功说明部署正常啦
5 安装marathon
下载marathon1.1.1.tar.gz到test0
并解压到 /data/marathon
#配置环境变量test0
export MESOS_NATIVE_JAVA_LIBRARY=/data/mesos/lib/libmesos.so
export MESOS_NATIVE_LIBRARY=/data/mesos/lib/libmesos.so
#在test0上运行marathon
/data/marathon/bin/start --master zk://test1:2181,test2:2181,test3:2181/mesos --zk zk://test1:2181,test2:2181,test3:2181/marathon
访问http://test0:8080
能成功就安装ok拉
到这里基本就安装完成了,可以通过marathon运行docker容器了