1. CentOS-6 安装 docker
1.1. 系统要求
CentOS-6 内核需升级到 3.10 以上。
1.2. 内核升级
1.1.1. 下载地址
http://elrepo.reloumirrors.net/kernel/el6/x86_64/RPMS/
1.1.2. 内核包
kernel-lt-4.4.154-1.el6.elrepo.x86_64.rpm
kernel-lt-devel-4.4.154-1.el6.elrepo.x86_64.rpm
kernel-lt-doc-4.4.154-1.el6.elrepo.noarch.rpm
kernel-lt-headers-4.4.154-1.el6.elrepo.x86_64.rpm
1.1.3. 依赖包
perl-version-0.77-144.el6.x86_64.rpm
perl-Pod-Simple-3.13-144.el6.x86_64.rpm
perl-Pod-Escapes-1.04-144.el6.x86_64.rpm
perl-Module-Pluggable-3.90-144.el6.x86_64.rpm
perl-libs-5.10.1-144.el6.x86_64.rpm
perl-5.10.1-144.el6.x86_64.rpm
1.1.4. 安装内核
sudo rpm -ivh *.rpm
1.1.5. 修改/etc/grub.conf
sudo vi /etc/grub.conf
如下图:
把 default 改成 0
1.3. 卸载旧版
sudo yum remove docker docker-common docker-selinux docker-engine docker-io
如果 yum 报告未安装任何这些软件包,这表示情况正常。
将保留 /var/lib/docker/ 的内容,包括镜像、容器、存储卷和网络。
1.4. 添加安装源
sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/6/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
1.5. 在线安装 docker-engine
1.5.1. 安装 docker
sudo yum install docker-engine
1.5.2. 启动/停止/查看 docker
sudo service docker start
sudo service docker stop
sudo service docker status
1.5.3. 设置开机启动
sudo chkconfig docker on
1.6. 离线安装 docker-engine
1.6.1. 下载地址
https://yum.dockerproject.org/repo/main/centos/6/Packages/
1.6.2. 安装包
docker-engine-1.7.1-1.el6.x86_64.rpm
1.6.3. 依赖包
xz-4.999.9-0.5.beta.20091007git.el6.x86_64.rpm
libcgroup-0.40.rc1-26.el6.x86_64.rpm
1.6.4. 安装 docker-engine
sudo rpm -ivh *.rpm
2. CentOS-6 安装 mesos+marathon+zk
2.1. 前期准备
2.1.1. 关闭 SELinux
sudo vi /etc/selinux/config
将 SELINUX=enforcing 修改为 SELINUX=disabled 重启生效
2.1.2. 关闭防火墙
sudo service iptables stop
2.1.3. 配置 hosts
sudo vi /etc/hosts
/etc/hosts 内容:
127.0.0.1
::1
192.168.245.227
192.168.245.228
192.168.245.229
iot-node1
iot-node2
iot-node3
localhost localhost.localdomain localhost4 localhost4.localdomain4
localhost localhost.localdomain localhost6 localhost6.localdomain6
2.1.4. 安装 java
1)卸载 CentOS 自带的 OpenJDK
sudo rpm -e --nodeps $(sudo rpm -qa | grep java)
sudo rpm -e --nodeps $(sudo rpm -qa | grep gcj)
sudo rpm -e --nodeps $(sudo rpm -qa | grep jdk)
2)用 cd 命令进入到 jdk-8u181-linux-x64.tar.gz 所在目录,执行以下命令
sudo tar -zxf jdk-8u181-linux-x64.tar.gz -C /opt
sudo mv /opt/jdk1.8.0_181 /opt/java
3)配置环境变量
sudo vi /etc/profile
在/etc/profile 的最后加入以下几行:
JAVA_HOME=/opt/java
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin
4)使环境变量生效
source /etc/profile
5)设置 java 软连接
sudo ln -sf /opt/java/bin/java /usr/bin/java
sudo ln -sf /opt/java/bin/javac /usr/bin/javac
sudo ln -sf /opt/java/bin/javaws /usr/bin/javaws
如果/usr/bin 目录已存在 java、javaws,删除/usr/bin 目录下的 java、javaws
然后执行上面的命令
2.2. 离线安装 zookeeper
2.2.1. 下载地址
http://mirrors.hust.edu.cn/apache/zookeeper/
2.2.2. 安装包
zookeeper-3.4.13.tar.gz
2.2.3. 安装 zookeeper
1)进入到 zookeeper-3.4.13.tar.gz 所在目录
执行解压命令:
sudo tar -zxf zookeeper-3.4.13.tar.gz -C /opt
2)修改文件夹名称:
sudo mv /opt/zookeeper-3.4.13 /opt/zookeeper
3)创建文件夹:
sudo mkdir /opt/zookeeper/data
sudo mkdir /opt/zookeeper/logs
2.2.4. 配置 zookeeper
1)每个 master 节点设置不同的 myid 值
在/opt/zookeeper/data/myid 中写入一个 1 到 255 范围的数值,需要注意的是,每个节
点的 myid 不要重复。
sudo vi /opt/zookeeper/data/myid
这里将 3 个 master 节点的 myid 分别设置为:1,2,3
2)修改配置:
sudo cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg
sudo vi /opt/zookeeper/conf/zoo.cfg
修改 dataDir=/var/lib/zookeeper 为 dataDir=/opt/zookeeper/data
在配置文件/opt/zookeeper/conf/zoo.cfg 中加入下面内容:
server.1= iot-node1:2888:3888
server.2= iot-node2:2888:3888
server.3= iot-node3:2888:3888
注意:iot-node1、iot-node2、iot-node3 位主节点主机名
server.后的数字对应 myid 的内容
3)修改 zookeeper 日志路径
sudo vi /opt/zookeeper/bin/zkEnv.sh
找到以下为内容:
if [ "x${ZOO_LOG_DIR}" = "x" ]
then
ZOO_LOG_DIR="."
fi
修改为:
if [ "x${ZOO_LOG_DIR}" = "x" ]
then
ZOO_LOG_DIR="" $ZOOBINDIR/../logs
fi
2.2.5. 注册 zookeeper 服务
1)新建一个 zookeeper 脚本
sudo touch /etc/rc.d/init.d/zookeeper
2)给脚本添加执行权限
sudo chmod +x /etc/rc.d/init.d/zookeeper
3)编辑/etc/rc.d/init.d/zookeeper
sudo vi /etc/rc.d/init.d/zookeeper
/etc/rc.d/init.d/zookeeper 内容:
#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
export JAVA_HOME=/opt/java
case $1 in
start) sudo /opt/zookeeper/bin/zkServer.sh start;;
stop) sudo /opt/zookeeper/bin/zkServer.sh stop;;
status) sudo /opt/zookeeper/bin/zkServer.sh status;;
restart) sudo /opt/zookeeper/bin/zkServer.sh restart;;
*) echo "require start|stop|status|restart" ;;
esac
2.2.6. 启动/停止/查看 zookeeper
sudo service zookeeper start
sudo service zookeeper stop
sudo service zookeeper status
2.2.7. 设置 zookeeper 开机自启
sudo chkconfig zookeeper on
2.2.8. 查看开机自启服务
sudo chkconfig --list
2.3. 离线安装 mesos
2.3.1. 下载地址
https://open.mesosphere.com/downloads/mesos/
2.3.2. 安装包
mesos-1.6.1-2.0.1.el6.x86_64.rpm
2.3.3. 依赖包
apr-util-1.3.9-3.el6_0.1.x86_64.rpm
apr-util-1.3.9-3.el6_0.1.x86_64.rpm
cyrus-sasl-md5-2.1.23-15.el6_6.2.x86_64.rpm
gnutls-2.12.23-22.el6.x86_64.rpm
libevent-1.4.13-4.el6.x86_64.rpm
libevent-devel-1.4.13-4.el6.x86_64.rpm
libevent-doc-1.4.13-4.el6.noarch.rpm
libevent-headers-1.4.13-4.el6.noarch.rpm
libproxy-0.3.0-10.el6.x86_64.rpm
libproxy-bin-0.3.0-10.el6.x86_64.rpm
libproxy-python-0.3.0-10.el6.x86_64.rpm
neon-0.29.3-3.el6_4.x86_64.rpm
pakchois-0.4-3.2.el6.x86_64.rpm
perl-URI-1.40-2.el6.noarch.rpm
subversion-1.6.11-15.el6_7.x86_64.rpm
2.3.4. 安装 mesos
进入到 mesos 安装包和依赖包所在目录执行命令:
sudo rpm -ivh *.rpm
2.3.5. 配置 mesos-master
1)每个 master 节点的/etc/mesos/zk 配置文件中设置 zk 的地址
sudo vi /etc/mesos/zk
/etc/mesos/zk 内容:
zk:// iot-node1:2181, iot-node2:2181, iot-node3:2181/mesos
2)/etc/mesos-master/quorum 中设置 quorum 值
sudo vi /etc/mesos-master/quorum
这个值要大于 master 数/2,这里 master 数为 3,则要设为 2
3)配置 ip、hostname、port
sudo vi /etc/mesos-master/ip
/etc/mesos-master/ip 内容为当前宿主机 IP
sudo vi /etc/mesos-master/hostname
/etc/mesos-master/ hostname 也配置当前宿主机 IP
注意:hostname 如果配置主机名,web ui 会出现不停地弹出对话框,“Failed to connect
to 192.168.245.227:5050",进行重新连接
也可以修改/etc/default/mesos-master
sudo vi /etc/default/mesos-master
显示内容:
PORT=5050
ZK=`cat /etc/mesos/zk`
2.3.6. 配置 mesos-slave
1)每个 master 节点的/etc/mesos/zk 配置文件中设置 zk 的地址
sudo vi /etc/mesos/zk
/etc/mesos/zk 内容:
zk:// iot-node1:2181, iot-node2:2181, iot-node3:2181/mesos
3)配置 ip、hostname
sudo vi /etc/mesos-slave/ip
/etc/mesos- slave/ip 内容为当前宿主机 IP
sudo vi /etc/mesos- slave/hostname
/etc/mesos- slave/hostname 也配置当前宿主机 IP
注意:hostname 如果配置主机名,web ui 会出现不停地弹出对话框,“Failed to connect
to 192.168.245.227:5050",进行重新连接
4)修改 mesos 容器端口范围
mesos 默认容器端口范围是 31000 - 32000
sudo vi /etc/mesos-slave/resources
/etc/mesos-slave/resources 内容:
ports(*):[1024-65534]
也可以在 mesos-slave 启动命令后加上:
--resources=ports(*):[1024-65534]
注意:mesos- slave 可与 marathon、mesos-master 安装在同一个宿主机
2.3.7. 其他
1)几个配置启动参数的目录:
/etc/mesos-master/
/etc/mesos-slave/
/etc/marathon/conf/