对于容器编排系统,前段时间主要研究kubernetes,现在实验室要用dcos,所以在实验室集群上搭建了该系统,dcos版本为1.8.6。
使用的系统为centos 7.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步时间同步。
在 使用Ubuntu之前,相信很多人都有过使用Windows系统的经历。如果你备份过Windows系统,那么你一定记忆犹新:首先需要找到一个备份工 具(通常都是私有软件),然后重启电脑进入备份工具提供的软件环境,在这里备份或者恢复Windows系统。Norton Ghost是备份Windows系统时经常使用的备份工具。
在备份Windows系统的时候你可能想过,我能不能把整个C盘都放到一个ZIP文件里去呢。这在Windows下是不可能的,因为在Windows中有很多文件在它们运行时是不允许拷贝或覆盖的,因此你需要专门的备份工具对Windows系统进行特殊处理。
和 备份Windows系统不同,如果你要备份Ubuntu系统(或者其它任何Linux系统),你不再需要像Ghost这类备份工具。事实上,Ghost 这类备份工具对于Linux文件系统的支持很糟糕,例如一些Ghost版本只能完善地支持Ext2文件系统,如果你用它来备份Ext3文件系统,你可能会 丢失一些宝贵的数据。
1. 备份系统
我该如何备份我的Ubuntu系统呢?很简单,就像你备份或压缩其它东西一样,使用TAR。和Windows不同,Linux不会限制root访问任何东西,你可以把分区上的所有东西都扔到一个TAR文件里去!
首先成为root用户:
$ sudo su
然后进入文件系统的根目录(当然,如果你不想备份整个文件系统,你也可以进入你想要备份的目录,包括远程目录或者移动硬盘上的目录):
# cd /
下面是我用来备份系统的完整命令:
# tar cvpzf backup.tgz –exclude=/proc –exclude=/lost+found –exclude=/backup.tgz –exclude=/mnt –exclude=/sys /
让我们来简单看一下这个命令:
“tar”当然就是我们备份系统所使用的程序了。
“cvpfz”是tar的选项,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来减小文件尺寸”。
“backup.gz”是我们将要得到的档案文件的文件名。
“/”是我们要备份的目录,在这里是整个文件系统。
在 档案文件名“backup.gz”和要备份的目录名“/”之间给出了备份时必须排除在外的目录。有些目录是无用的,例如“/proc”、“/lost+ found”、“/sys”。当然,“backup.gz”这个档案文件本身必须排除在外,否则你可能会得到一些超出常理的结果。如果不把“/mnt”排 除在外,那么挂载在“/mnt”上的其它分区也会被备份。另外需要确认一下“/media”上没有挂载任何东西(例如光盘、移动硬盘),如果有挂载东西, 必须把“/media”也排除在外。
有人可能会建议你把“/dev”目录排除在外,但是我认为这样做很不妥,具体原因这里就不讨论了。
执行备份命令之前请再确认一下你所键入的命令是不是你想要的。执行备份命令可能需要一段不短的时间。
备份完成后,在文件系统的根目录将生成一个名为“backup.tgz”的文件,它的尺寸有可能非常大。现在你可以把它烧录到DVD上或者放到你认为安全的地方去。
在备份命令结束时你可能会看到这样一个提示:’tar: Error exit delayed from previous errors’,多数情况下你可以忽略它。
你还可以用Bzip2来压缩文件,Bzip2比gzip的压缩率高,但是速度慢一些。如果压缩率对你来说很重要,那么你应该使用Bzip2,用“j”代替命令中的“z”,并且给档案文件一个正确的扩展名“bz2”。完整的命令如下:
# tar cvpjf backup.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=/backup.tar.bz2 –exclude=/mnt –exclude=/sys /
2. 恢复系统
在进行恢复系统的操作时一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的数据弄丢,请务必小心!
接着上面的例子。切换到root用户,并把文件“backup.tgz”拷贝到分区的根目录下。
在 Linux中有一件很美妙的事情,就是你可以在一个运行的系统中恢复系统,而不需要用boot-cd来专门引导。当然,如果你的系统已经挂掉不能启动了, 你可以用Live CD来启动,效果是一样的。你还可以用一个命令把Linux系统中的所有文件干掉,当然在这里我不打算给出这个命令!
使用下面的命令来恢复系统:
# tar xvpfz backup.tgz -C /
如果你的档案文件是使用Bzip2压缩的,应该用:
# tar xvpfj backup.tar.bz2 -C /
注意:上面的命令会用档案文件中的文件覆盖分区上的所有文件。
执行恢复命令之前请再确认一下你所键入的命令是不是你想要的,执行恢复命令可能需要一段不短的时间。
恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被排除在外的目录:
# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir sys
等等
当你重启电脑,你会发现一切东西恢复到你创建备份时的样子了!
1.关闭firewalld和selinux
2.ssh免密码登录
3.时间同步
4.安装overlay模块
5.安装docker
6.安装dcos
systemctl stop firewalld && systemctl disable firewalld
firewall-cmd --state
查看firewalld是否成功关闭,应该显示not runningsetenforce 0
,sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
,重启后输入sestatus
查看selinux状态,此时应该显示disabled
在boot节点上执行ssh-keygen -t rsa
生成密钥
执行ssh-copy-id -i 10.107.x.x
分别将私钥复制到其他要免密钥登陆的机器
执行命令
tee /etc/modules-load.d/overlay.conf <<-'EOF'
overlay
EOF
并重启将overlay模块加载如系统中,并执行lsmod | grep overlay
查看是否加载成功,成功应该显示overlay 42451 0
首先,通过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
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"
agent_list:
< ul>- 10.107.19.2
< li>10.107.19.3
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
安装依赖,否则会出错。这一步运行成功后屏幕输出如下图,其中提示的红色的错误是由于集群没有联网导致的,可以直接忽略。 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服务已经启动,屏幕输出如下图,护色错误依旧忽略。 http://:8181/exhibitor/v1/ui/index.html
,如下图所示,当Hostname前面的圆形的状态图标为绿色时,代表DC/OS的接口已经可用了 http:///
,登陆后界面如下图注意:如果安装过程中出现错误需重新安装的话,需要清除已经安装的文件。具体做法是新建一个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
本文名称:CentOS7.2安装DCOS详解
链接分享:http://www.shufengxianlan.com/qtweb/news14/222114.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联