centos7.2安装dcos
时间:2017-01-15 14:18 来源:linux.it.net.cn 作者:IT
1. 前言
对于容器编排系统,前段时间主要研究kubernetes,现在实验室要用dcos,所以在实验室集群上搭建了该系统,dcos版本为1.8.6。
使用的系统为centos7.2,机器使用情况如下表所示,实验室集群没有联外网。
机器ip
作用
10.107.18.35
单独一台boot节点
10.107.19.1
单独一台master节点
10.107.13.150
4台slave节点
10.107.19.2
4台slave节点
10.107.19.3
4台slave节点
10.107.18.39
4台slave节点
为了避免安装失败时需要重新启动系统,这里可以在完成第7节,安装完成Docker后将所有机器系统备份,出现问题时将系统还原到备份点。需要主要的是还原后要重新做第5步时间同步。系统备份参考http://blog.csdn.net/yuanfang_way/article/details/54383616
2. 本文分析内容安排
1.关闭firewalld和selinux
2.ssh免密码登录
3.时间同步
4.安装overlay模块
5.安装docker
6.安装dcos
3. 关闭firewalld和selinux
-
所有机器上执行systemctl stop firewalld && systemctl disable firewalld
执行firewall-cmd --status查看firewalld是否成功关闭,应该显示not running
-
所有机器执行setenforce 0,sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config,重启后输入sestatus查看selinux状态,此时应该显示disabled
4. ssh免密码登录
在boot节点上执行ssh-keygen -t rsa生成密钥
执行ssh-copy-id -i 10.107.x.x分别将私钥复制到其他要免密钥登陆的机器
5. 时间同步
参考http://blog.csdn.net/yuanfang_way/article/details/53959591
6. 安装overlay模块
执行命令
tee /etc/modules-load.d/overlay.conf <<-'EOF'
overlay
EOF
并重启将overlay模块加载如系统中,并执行lsmod | grep overlay查看是否加载成功,成功应该显示overlay 42451 0
7. 安装docker
首先,通过rpm或者yum install的方式安装docker,在没网的情况下需要先下载docker安装相关的rpm包;之后,设置docker的存储为overlay,具体应该执行如下脚本:
mkdir -p /etc/systemd/system/docker.service.d && tee /etc/systemd/system/docker.service.d/override.conf <<- EOF
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon --storage-driver=overlay
EOF
改变配置后需要执行systemctl daemon-reload命令使配置生效; 这时便可以启动docker了,如下:
systemctl start docker
systemctl enable docker
最后,运行docker info命令查看是否正常安装docker,并且存储用的是overlay,正确情况时显示如下图
8. 安装dcos
-
在boot节点上下载dcos的installer:dcos_generate_config.sh(大约726MB),同时在与dcos_generate_config.sh文件同级目录下新建genconf目录,我是在/home/dcos目录下建的 mkdir -p genconf cd genconf
-
在genconf中新建一个ip-detect文件,用于探测集群中节点的ip,我使用的文件内容为
#!/bin/bash
echo $(ip addr s | grep inet | grep 10.107 | awk -F' ' '{print $2}'| awk -F'/' '{print $1}')
这里不能写错,因为该文件内容最终会被拷贝到master和agent节点的/opt/mesosphere/bin/detect_ip中,在第9步启动dcos服务时用来探测ip。如果,写错将不能正常启动集群,报如下错误
time="2017-01-13T00:57:22+08:00" level=info msg="/opt/mesosphere/etc/endpoints_config.json not found"
time="2017-01-13T00:57:22+08:00" level=error msg="Could not detect IP: fork/exec /opt/mesosphere/bin/detect_ip: exec format error"
time="2017-01-13T00:57:22+08:00" level=error msg="Could not get mesos node id: Get http://:5051/state: dial tcp :5051: getsockopt: connection refused"
time="2017-01-13T00:57:22+08:00" level=fatal msg="Found unhealthy systemd units"
-
在genconf中新建config.yaml文件,用于集群master以及agent节点的配置,我所用集群的配置为: agent_list: <ul><li>10.107.19.2</li> <li>10.107.19.3</li> <li>10.107.18.39</li> <li>10.107.13.150 auth_enabled: false bootstrap_url: file:///opt/dcos_install_tmp cluster_name: DC/OS exhibitor_storage_backend: static ip_detect_path: genconf/ip-detect master_discovery: static master_list:</li> <li>10.107.19.1 process_timeout: 10000 resolvers:</li> <li>8.8.8.8</li> <li>8.8.4.4 ssh_key_path: genconf/ssh_key ssh_port: 22 ssh_user: root telemetry_enabled: false oauth_enabled: false
-
将SSH key拷贝的genconf目录,具体命令为cp /root/.ssh/id_rsa genconf/ssh_key && chmod 0600 genconf/ssh_key
-
运行bash dcos_generate_config.ee.sh --genconf命令创建安装文件,并提取出为集群提供文件的docker容器,运行完这一步后dcos下的目录结构如下图:
-
运行bash dcos_generate_config.ee.sh --install-prereqs安装dcos需要的依赖环境。但是,如果集群没有联网,那么在运行此命令前需要首先在master和agent节点上运行yum install -y tar xz unzip curl ipset安装依赖,否则会出错。这一步运行成功后屏幕输出如下图,其中提示的红色的错误是由于集群没有联网导致的,可以直接忽略。
-
检测各节点是否已达到了安装部署dcos的全部要求bash dcos_generate_config.ee.sh --preflight,boot节点会检查其他节点的系统环境符不符合安装要求,是不是有配置错误,或者缺包、版本不对等问题。运行成功后证明各机器达到了部署dcos的要求,屏幕输出如下,其中红色错误依旧是未联网导致的,可以忽略。
-
正式安装bash dcos_generate_config.ee.sh --deploy,在上一步环境检查顺利通过以后,执行deploy,其实就是从boot节点把安装镜像下发到各个节点而已,上一步没问题这一步一般也不会出错。运行成功后证明各机器已经成功安装dcos,屏幕输出如下图,红色错误依旧忽略。
-
确保服务启动并且正常运行bash dcos_generate_config.ee.sh --postflight,这步其实就是boot去各个节点把docker镜像拉起来,DCOS的那些组件像mesos master 、slave 、marathon、mesos-dns等都是运行在docker里,另外具体配置信息也是boot节点通过环境变量这种方式帮你注入进去,这一步一般也不会出现问题。运行成功后dcos服务已经启动,屏幕输出如下图,护色错误依旧忽略。
-
dcos服务监控 监控dcos服务的网址为http://<master-public-ip>:8181/exhibitor/v1/ui/index.html,如下图所示,当Hostname前面的圆形的状态图标为绿色时,代表DC/OS的接口已经可用了
-
登陆DC/OS 登陆DC/OS系统的接口为http://<public-master-ip>/,登陆后界面如下图
注意:如果安装过程中出现错误需重新安装的话,需要清除已经安装的文件。具体做法是新建一个uninstall.sh文件,文件内容如下,将该文件改为可执行文件,然后执行即可。
/opt/mesosphere/bin/pkgpanda uninstall && \
rm -rf /opt/mesosphere /var/lib/mesos /var/lib/dcos /var/lib/zookeeper /var/log/mesos /etc/mesosphere /var/lib/mesosphere && \
rm -rf /etc/profile.d/dcos.sh /etc/systemd/journald.conf.d/dcos.conf /etc/systemd/system/dcos-cfn-signal.service /etc/systemd/system/dcos-download.service /etc/systemd/system/dcos-link-env.service /etc/systemd/system/dcos-setup.service /etc/systemd/system/multi-user.target.wants/dcos-setup.service /etc/systemd/system/multi-user.target.wants/dcos.target
9. 作者介绍
梁明远,国防科大并行与分布式计算国家重点实验室(PDL)应届研究生,14年入学伊始便开始接触docker,准备在余下的读研时间在docker相关开源社区贡献自己的代码,毕业后准备继续从事该方面研究。邮箱:liangmingyuanneo@gmail.com
(责任编辑:IT)
1. 前言
对于容器编排系统,前段时间主要研究kubernetes,现在实验室要用dcos,所以在实验室集群上搭建了该系统,dcos版本为1.8.6。
为了避免安装失败时需要重新启动系统,这里可以在完成第7节,安装完成Docker后将所有机器系统备份,出现问题时将系统还原到备份点。需要主要的是还原后要重新做第5步时间同步。系统备份参考http://blog.csdn.net/yuanfang_way/article/details/54383616 2. 本文分析内容安排
1.关闭firewalld和selinux 3. 关闭firewalld和selinux
4. ssh免密码登录
在boot节点上执行ssh-keygen -t rsa生成密钥 5. 时间同步参考http://blog.csdn.net/yuanfang_way/article/details/53959591 6. 安装overlay模块执行命令 tee /etc/modules-load.d/overlay.conf <<-'EOF' overlay EOF 并重启将overlay模块加载如系统中,并执行lsmod | grep overlay查看是否加载成功,成功应该显示overlay 42451 0 7. 安装docker首先,通过rpm或者yum install的方式安装docker,在没网的情况下需要先下载docker安装相关的rpm包;之后,设置docker的存储为overlay,具体应该执行如下脚本: mkdir -p /etc/systemd/system/docker.service.d && tee /etc/systemd/system/docker.service.d/override.conf <<- EOF [Service] ExecStart= ExecStart=/usr/bin/docker daemon --storage-driver=overlay EOF 改变配置后需要执行systemctl daemon-reload命令使配置生效; 这时便可以启动docker了,如下: systemctl start docker systemctl enable docker 最后,运行docker info命令查看是否正常安装docker,并且存储用的是overlay,正确情况时显示如下图 8. 安装dcos
注意:如果安装过程中出现错误需重新安装的话,需要清除已经安装的文件。具体做法是新建一个uninstall.sh文件,文件内容如下,将该文件改为可执行文件,然后执行即可。 /opt/mesosphere/bin/pkgpanda uninstall && \ rm -rf /opt/mesosphere /var/lib/mesos /var/lib/dcos /var/lib/zookeeper /var/log/mesos /etc/mesosphere /var/lib/mesosphere && \ rm -rf /etc/profile.d/dcos.sh /etc/systemd/journald.conf.d/dcos.conf /etc/systemd/system/dcos-cfn-signal.service /etc/systemd/system/dcos-download.service /etc/systemd/system/dcos-link-env.service /etc/systemd/system/dcos-setup.service /etc/systemd/system/multi-user.target.wants/dcos-setup.service /etc/systemd/system/multi-user.target.wants/dcos.target 9. 作者介绍梁明远,国防科大并行与分布式计算国家重点实验室(PDL)应届研究生,14年入学伊始便开始接触docker,准备在余下的读研时间在docker相关开源社区贡献自己的代码,毕业后准备继续从事该方面研究。邮箱:liangmingyuanneo@gmail.com (责任编辑:IT) |