版权声明:本文为博主原创文章,未经博主允许不得转载。
DCOS是Mesosphere开发的开源数据中心操作系统,除了mesos分布式内核外还集成marathon和mesos-dns等组件,能够提供完整的服务治理、应用监控、权限管理能力,具体DCOS的使用我会在后面的分享里说明,这篇主要讲如何通过在线的方式快速安装部署DCOS。
1.环境准备
注意!启动节点必须要单独一台,不能和master节点混用,另外master节点也必须是单独一台,不能和slave节点混用。boot节点以后如果DCOS崩溃的时候还可以用来恢复集群。
- 单独一台boot节点
- 单独一台master节点
- 3台slave节点
操作系统都要centos7以上版本,集群节点间网络要能互通,boot节点到其他节点要做ssh互信,所有节点都要关闭selinux和防火墙。
Master节点要可以上网。因为在安装dcos的时候,会更新软件和相关插件
先检查DNS是否可用,(ping百度)
ping baidu.com
然后查看ip
ifconfig
如果ping不同需要修改网络服务DNS
cd /etc/sysconfig/network-scripts
vi /etc/resolv.conf
DNS样例
nameserver 202.96.128.86
nameserver 202.96.128.166
nameserver 8.8.8.8
nameserver 8.8.4.4
修改完重启网卡服务
service network restart
traceroute 202.108.22.5
如果是新装的机器,可以方便配置修改主机名
主机名配置文件一
vi /etc/sysconfig/network
样例
HOSTNAME=master
HOSTNAME=slave1
HOSTNAME=slave2
HOSTNAME=slave3
HOSTNAME=slave4
主机名配置文件二
vi /etc/hosts
样例
10.1.131.11 master
10.1.131.12 slave1
10.1.131.13 slave2
10.1.131.14 slave3
10.1.131.15 slave4
需要boot节点到所有其他,master,slave节点的免验证登录
第一步:创建ssh-key
ssh-keygen -t rsa
说明:多次回车后
第二步:cd ~/.ssh
说明:
~代表你的/home/用户明目录
假设你的用户名是x,那么~/就是/home/x/
.是代表此目录本身,但是一般可以不写
所以cd ~/. 和cd ~ 和cd ~/效果是一样的
但是.后面有东西又是另外一个问题,点在文件名头部,代表一个隐藏文件
~/.local是你的主目录下一个.local的文件夹的路径,并且从.可以看出,这是一个饮藏文件,如果不用ls -a的话,一般ls是无法看到的
拷贝公钥
第三步:catid_rsa.pub >> authorized_keys
测试公钥
第六步:输入如下命令,测试是否成功
ssh localhost
输入yes后
再次 ssh localhost
本地主机自己的免登陆就完成了,接下来是其他主机免登陆,方法同上,依次拷贝添加
cd ~/.ssh
分发公钥到其他节点
scp ./id_rsa.pub hadoop-slave:~/.ssh/id_master.pub
ssh hadoop-slave1
cd ~/.ssh
cat id_master.pub >> authorized_keys
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl stop iptables.service
systemctl disable iptables.service
关闭SELINUX
setenforce 0
sed -i'/^SELINUX=/c\SELINUX=disabled'/etc/selinux/config
*********注意!需要查询官网dcos现有版本支持那种版本的docker,博主一开始用的最新版本1.12的docker结果安装各种问题,降级为1.11的docker就没有问题,官网上当时支持到1.11版本的docker。
yum install -y docker-engine-1.11.2
2.安装overlayFS docker
**注意!**DCOS默认底层存储引擎要用overlayFS格式的,如果是按照devicemapper方式安装的docker在安装DCOS的时候会报错,提示服务器存储空间不够docker启动不起来,这个问题搞了好久,最后还是按照官方的要求重新安装docker才解决。另外说一下所有的节点都需要安装docker,包括boot节点。
建立overlay配置文件
tee /etc/modules-load.d/overlay.conf<<-'EOF'
overlay
EOF
验证overlayFS是否开启
命令:lsmod |grep overlay
结果 :overlay
配置docker启动使用overlayFS的方式
mkdir -p/etc/systemd/system/docker.service.d && sudo tee/etc/systemd/system/docker.service.d/override.conf <<- EOF
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon--storage-driver=overlay
EOF
2.1 升级系统内核
如果你直接安装的是centos7.2就不用升级了
yumupgrade--assumeyes--tolerantyumupdate--assumeyes
2.2 验证系统内核是3.1以上版本
uname -r
3.10.0-327.10.1.el7.x86_64
2.3打开 OverlayFS
tee /etc/modules-load.d/overlay.conf<<-'EOF'
overlay
EOF
2.4 重启系统
reboot
2.5 验证overlayFS是否开启
$ lsmod | grepoverlay
overlay2.6配置docker yum源
这个版本的yum 用centos自带的yum源就不行了,需要加一个repo文件
tee /etc/yum.repos.d/docker.repo <<'EOF'
[dockerrepo]
name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg
EOF
2.7 配置docker启动使用overlayFS的方式
mkdir -p /etc/systemd/system/docker.service.d && sudo tee/etc/systemd/system/docker.service.d/override.conf <<- EOF
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon --storage-driver=overlay -H fd://
EOF2.8 安装启动docker
yuminstall--assumeyes--tolerantdocker-enginesystemctlstartdockersystemctlenabledocker如果启动成功的话,应该能看到
Complete!
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
2.9 测试docker安装成功否
docker ps3.在boot节点上下载DCOS安装文件
这个安装文件大概500多m,500多m的sh文件,很奇怪吧:)其实是官方把安装镜像也包里边去了,只要下一个这个就够了。
curl -O https://downloads.dcos.io/dcos/EarlyAccess/dcos_generate_config.sh4.运行安装脚本
bashdcos_generate_config.sh--web
输出结果
Running mesosphere/dcos-genconf docker with BUILD_DIR setto /home/centos/genconf
16:36:09 dcos_installer.action_lib.prettyprint:: ====> Starting DC/OS installerin web mode
16:36:09 root:: Starting server ('0.0.0.0', 9000)
万一启动失败了,你可以用这个命令看更精细的输出,方便调试
bash dcos_generate_config.sh --web
5.进入web安装界面
http://boot节点IP:9000
6.输入配置信息
Master Private IP List :master节点IP,有多台用逗号分隔
Agent Private IP List :slave节点IP,有多台用逗号分隔
Master Public IP :master节点的外网IP,这个应该是从master列表中选一台
SSH Username: ssh用户名,尽量用root
SSH Listening Port :ssh端口
SSH Key :boot节点的ssh私钥,id_rsa文件,从头到尾拷贝全了
cd ~/.ssh
cat id_rsa
Upstream DNS Servers:dns服务器,建议用本地集群内的dns和8.8.8.8
IP Detect Script:要在节点上运行的ip探测脚本,我自己写了一个大家可以照着改,别忘了设定脚本权限。
#!/bin/bash
IPDETECT=`ifconfig em1|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr-d "addr:"`
echo"$IPDETECT"
注意!一旦DCOS安装完成这个节点的IP是不能改的,如果要改的话就得卸载节点重新再添加,所以这个IP地址一定要是静态的,不能用DHCP分配的。其实也是有办法添加的,比较麻烦,无法从界面上添加,需要从后台添加
7.开始环境检查
点击Run Pre-Flight 就开始了,boot节点会检查其他节点的系统环境符不符合安装要求,是不是有配置错误,或者缺包、版本不对等问题。全套下来大约需要15分钟左右,一般出问题都是在这个环节,一旦出了问题,他会提示你哪个节点有问题,然后你可以点开看,一大串下拉列表,都是一项项的检查环节,从中挑带error的,然后再ssh登陆到各个节点该配置配置该装包装包,等都处理完了,在返回web界面的上一步,重新执行Run Pre-Flight 。
注意!这个过程中一定不能关闭这个web安装界面,如果你必须重启boot节点,或者网络掉线了,那么你在重新启动web安装过程前,必须登陆到各个节点做个清理工作。
***注意!,如果安装失败,需要清理以下文件再安装
执行自卸载命令,如果显示节点都卸载成功,可以安心重装,若卸载失败需要清理以下目录
自卸载命令
bash dcos_generate_config.sh –uninstall
清理的目录
rm –rf /opt/mesosphere
这个是安装完成后,会生成的mesosphere目录
rm –rf /etc/systemd/system/dcos.target.wants
安装临时目录,不删除会报错
rm –rf /var/lib/zookeeper
master节点会安装zookeeper,重新安装需要清理
rm –rf /var/lib/mesos
这个是安装完成后,会生成的mesos库,重新安装需要清理
8.集群部署安装文件
在上一步环境检查顺利通过以后,执行deploy,其实就是从boot节点把安装镜像下发到各个节点而已,上一步没问题这一步一般也不会出错。
9.启动DCOS后台服务
部署执行完以后,再点击run Post-Flight ,这步其实就是boot去各个节点把docker镜像拉起来,DCOS的那些组件像mesos master 、slave 、marathon、mesos-dns等都是运行在docker里,另外具体配置信息也是boot节点通过环境变量这种方式帮你注入进去,这一步一般也不会出现问题。
执行完成以后我们的DCOS安装阶段就成功了!
10.登陆DCOS
登陆DCOS只能通过微软、github、gmail这三种账户登陆,一般用git账户吧,需要用浏览器先登陆到github,然后再选择DCOS界面上的git login,就能登陆上了,看到系统监控界面。
11.DCOS 软件库
DCOS也提供了类似docker repository的功能,叫做Universe,里边提供了很多分布式应用的package,包括chronos、spark、Jenkins、Kafaka等,但是很遗憾目前上边还有没有hadoop,只有hdfs。
12.最后
其实我这篇文章主要是基于mesosphere的官方文档写的,上边的内容很详实,像hadoop的文档一样好用,大家有问题可以上去参考。
https://dcos.io/docs/1.7/
中国联通研究院——软件与系统实验室