新聞中心
1. 前言
對(duì)于容器編排系統(tǒng),前段時(shí)間主要研究kubernetes,現(xiàn)在實(shí)驗(yàn)室要用dcos,所以在實(shí)驗(yàn)室集群上搭建了該系統(tǒng),dcos版本為1.8.6。
使用的系統(tǒng)為centos 7.2,機(jī)器使用情況如下表所示,實(shí)驗(yàn)室集群沒(méi)有聯(lián)外網(wǎng)。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)昌吉免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
| 機(jī)器ip | 作用 |
|---|---|
| 10.107.18.35 | 單獨(dú)一臺(tái)boot節(jié)點(diǎn) |
| 10.107.19.1 | 單獨(dú)一臺(tái)master節(jié)點(diǎn) |
| 10.107.13.150 | 4臺(tái)slave節(jié)點(diǎn) |
| 10.107.19.2 | 4臺(tái)slave節(jié)點(diǎn) |
| 10.107.19.3 | 4臺(tái)slave節(jié)點(diǎn) |
| 10.107.18.39 | 4臺(tái)slave節(jié)點(diǎn) |
為了避免安裝失敗時(shí)需要重新啟動(dòng)系統(tǒng),這里可以在完成第7節(jié),安裝完成docker后將所有機(jī)器系統(tǒng)備份,出現(xiàn)問(wèn)題時(shí)將系統(tǒng)還原到備份點(diǎn)。需要主要的是還原后要重新做第5步時(shí)間同步。
在 使用Ubuntu之前,相信很多人都有過(guò)使用Windows系統(tǒng)的經(jīng)歷。如果你備份過(guò)Windows系統(tǒng),那么你一定記憶猶新:首先需要找到一個(gè)備份工 具(通常都是私有軟件),然后重啟電腦進(jìn)入備份工具提供的軟件環(huán)境,在這里備份或者恢復(fù)Windows系統(tǒng)。Norton Ghost是備份Windows系統(tǒng)時(shí)經(jīng)常使用的備份工具。
在備份Windows系統(tǒng)的時(shí)候你可能想過(guò),我能不能把整個(gè)C盤都放到一個(gè)ZIP文件里去呢。這在Windows下是不可能的,因?yàn)樵赪indows中有很多文件在它們運(yùn)行時(shí)是不允許拷貝或覆蓋的,因此你需要專門的備份工具對(duì)Windows系統(tǒng)進(jìn)行特殊處理。
和 備份Windows系統(tǒng)不同,如果你要備份Ubuntu系統(tǒng)(或者其它任何Linux系統(tǒng)),你不再需要像Ghost這類備份工具。事實(shí)上,Ghost 這類備份工具對(duì)于Linux文件系統(tǒng)的支持很糟糕,例如一些Ghost版本只能完善地支持Ext2文件系統(tǒng),如果你用它來(lái)備份Ext3文件系統(tǒng),你可能會(huì) 丟失一些寶貴的數(shù)據(jù)。
1. 備份系統(tǒng)
我該如何備份我的Ubuntu系統(tǒng)呢?很簡(jiǎn)單,就像你備份或壓縮其它東西一樣,使用TAR。和Windows不同,Linux不會(huì)限制root訪問(wèn)任何東西,你可以把分區(qū)上的所有東西都扔到一個(gè)TAR文件里去!
首先成為root用戶:
$ sudo su
然后進(jìn)入文件系統(tǒng)的根目錄(當(dāng)然,如果你不想備份整個(gè)文件系統(tǒng),你也可以進(jìn)入你想要備份的目錄,包括遠(yuǎn)程目錄或者移動(dòng)硬盤上的目錄):
# cd /
下面是我用來(lái)備份系統(tǒng)的完整命令:
# tar cvpzf backup.tgz –exclude=/proc –exclude=/lost+found –exclude=/backup.tgz –exclude=/mnt –exclude=/sys /
讓我們來(lái)簡(jiǎn)單看一下這個(gè)命令:
“tar”當(dāng)然就是我們備份系統(tǒng)所使用的程序了。
“cvpfz”是tar的選項(xiàng),意思是“創(chuàng)建檔案文件”、“保持權(quán)限”(保留所有東西原來(lái)的權(quán)限)、“使用gzip來(lái)減小文件尺寸”。
“backup.gz”是我們將要得到的檔案文件的文件名。
“/”是我們要備份的目錄,在這里是整個(gè)文件系統(tǒng)。
在 檔案文件名“backup.gz”和要備份的目錄名“/”之間給出了備份時(shí)必須排除在外的目錄。有些目錄是無(wú)用的,例如“/proc”、“/lost+ found”、“/sys”。當(dāng)然,“backup.gz”這個(gè)檔案文件本身必須排除在外,否則你可能會(huì)得到一些超出常理的結(jié)果。如果不把“/mnt”排 除在外,那么掛載在“/mnt”上的其它分區(qū)也會(huì)被備份。另外需要確認(rèn)一下“/media”上沒(méi)有掛載任何東西(例如光盤、移動(dòng)硬盤),如果有掛載東西, 必須把“/media”也排除在外。
有人可能會(huì)建議你把“/dev”目錄排除在外,但是我認(rèn)為這樣做很不妥,具體原因這里就不討論了。
執(zhí)行備份命令之前請(qǐng)?jiān)俅_認(rèn)一下你所鍵入的命令是不是你想要的。執(zhí)行備份命令可能需要一段不短的時(shí)間。
備份完成后,在文件系統(tǒng)的根目錄將生成一個(gè)名為“backup.tgz”的文件,它的尺寸有可能非常大?,F(xiàn)在你可以把它燒錄到DVD上或者放到你認(rèn)為安全的地方去。
在備份命令結(jié)束時(shí)你可能會(huì)看到這樣一個(gè)提示:’tar: Error exit delayed from previous errors’,多數(shù)情況下你可以忽略它。
你還可以用Bzip2來(lái)壓縮文件,Bzip2比gzip的壓縮率高,但是速度慢一些。如果壓縮率對(duì)你來(lái)說(shuō)很重要,那么你應(yīng)該使用Bzip2,用“j”代替命令中的“z”,并且給檔案文件一個(gè)正確的擴(kuò)展名“bz2”。完整的命令如下:
# tar cvpjf backup.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=/backup.tar.bz2 –exclude=/mnt –exclude=/sys /
2. 恢復(fù)系統(tǒng)
在進(jìn)行恢復(fù)系統(tǒng)的操作時(shí)一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的數(shù)據(jù)弄丟,請(qǐng)務(wù)必小心!
接著上面的例子。切換到root用戶,并把文件“backup.tgz”拷貝到分區(qū)的根目錄下。
在 Linux中有一件很美妙的事情,就是你可以在一個(gè)運(yùn)行的系統(tǒng)中恢復(fù)系統(tǒng),而不需要用boot-cd來(lái)專門引導(dǎo)。當(dāng)然,如果你的系統(tǒng)已經(jīng)掛掉不能啟動(dòng)了, 你可以用Live CD來(lái)啟動(dòng),效果是一樣的。你還可以用一個(gè)命令把Linux系統(tǒng)中的所有文件干掉,當(dāng)然在這里我不打算給出這個(gè)命令!
使用下面的命令來(lái)恢復(fù)系統(tǒng):
# tar xvpfz backup.tgz -C /
如果你的檔案文件是使用Bzip2壓縮的,應(yīng)該用:
# tar xvpfj backup.tar.bz2 -C /
注意:上面的命令會(huì)用檔案文件中的文件覆蓋分區(qū)上的所有文件。
執(zhí)行恢復(fù)命令之前請(qǐng)?jiān)俅_認(rèn)一下你所鍵入的命令是不是你想要的,執(zhí)行恢復(fù)命令可能需要一段不短的時(shí)間。
恢復(fù)命令結(jié)束時(shí),你的工作還沒(méi)完成,別忘了重新創(chuàng)建那些在備份時(shí)被排除在外的目錄:
# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir sys
等等
當(dāng)你重啟電腦,你會(huì)發(fā)現(xiàn)一切東西恢復(fù)到你創(chuàng)建備份時(shí)的樣子了!
2. 本文分析內(nèi)容安排
1.關(guān)閉firewalld和selinux
2.ssh免密碼登錄
3.時(shí)間同步
4.安裝overlay模塊
5.安裝docker
6.安裝dcos
3. 關(guān)閉firewalld和selinux
- 所有機(jī)器上執(zhí)行
systemctl stop firewalld && systemctl disable firewalld
執(zhí)行firewall-cmd --state查看firewalld是否成功關(guān)閉,應(yīng)該顯示not running - 所有機(jī)器執(zhí)行
setenforce 0,sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config,重啟后輸入sestatus查看selinux狀態(tài),此時(shí)應(yīng)該顯示disabled
4. ssh免密碼登錄
在boot節(jié)點(diǎn)上執(zhí)行ssh-keygen -t rsa生成密鑰
執(zhí)行ssh-copy-id -i 10.107.x.x分別將私鑰復(fù)制到其他要免密鑰登陸的機(jī)器
5. 時(shí)間同步
6. 安裝overlay模塊
執(zhí)行命令
tee /etc/modules-load.d/overlay.conf <<-'EOF'
overlay
EOF
并重啟將overlay模塊加載如系統(tǒng)中,并執(zhí)行lsmod | grep overlay查看是否加載成功,成功應(yīng)該顯示overlay 42451 0
7. 安裝docker
首先,通過(guò)rpm或者yum install的方式安裝docker,在沒(méi)網(wǎng)的情況下需要先下載docker安裝相關(guān)的rpm包;之后,設(shè)置docker的存儲(chǔ)為overlay,具體應(yīng)該執(zhí)行如下腳本:
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
改變配置后需要執(zhí)行systemctl daemon-reload命令使配置生效;
這時(shí)便可以啟動(dòng)docker了,如下:
systemctl start docker systemctl enable docker
8. 安裝dcos
- 在boot節(jié)點(diǎn)上下載dcos的installer:dcos_generate_config.sh(大約726MB),同時(shí)在與dcos_generate_config.sh文件同級(jí)目錄下新建genconf目錄,我是在/home/dcos目錄下建的
mkdir -p genconf
cd genconf -
在genconf中新建一個(gè)ip-detect文件,用于探測(cè)集群中節(jié)點(diǎn)的ip,我使用的文件內(nèi)容為
#!/bin/bash echo $(ip addr s | grep inet | grep 10.107 | awk -F' ' '{print $2}'| awk -F'/' '{print $1}')這里不能寫錯(cuò),因?yàn)樵撐募?nèi)容最終會(huì)被拷貝到master和agent節(jié)點(diǎn)的
/opt/mesosphere/bin/detect_ip中,在第9步啟動(dòng)dcos服務(wù)時(shí)用來(lái)探測(cè)ip。如果,寫錯(cuò)將不能正常啟動(dòng)集群,報(bào)如下錯(cuò)誤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節(jié)點(diǎn)的配置,我所用集群的配置為:
agent_list:
< ul>- 10.107.19.2
< li>10.107.19.3 - 將SSH key拷貝的genconf目錄,具體命令為
cp /root/.ssh/id_rsa genconf/ssh_key && chmod 0600 genconf/ssh_key - 運(yùn)行
bash dcos_generate_config.ee.sh --genconf命令創(chuàng)建安裝文件,并提取出為集群提供文件的docker容器,運(yùn)行完這一步后dcos下的目錄結(jié)構(gòu)如下圖: - 運(yùn)行
bash dcos_generate_config.ee.sh --install-prereqs安裝dcos需要的依賴環(huán)境。但是,如果集群沒(méi)有聯(lián)網(wǎng),那么在運(yùn)行此命令前需要首先在master和agent節(jié)點(diǎn)上運(yùn)行yum install -y tar xz unzip curl ipset安裝依賴,否則會(huì)出錯(cuò)。這一步運(yùn)行成功后屏幕輸出如下圖,其中提示的紅色的錯(cuò)誤是由于集群沒(méi)有聯(lián)網(wǎng)導(dǎo)致的,可以直接忽略。 - 檢測(cè)各節(jié)點(diǎn)是否已達(dá)到了安裝部署dcos的全部要求
bash dcos_generate_config.ee.sh --preflight,boot節(jié)點(diǎn)會(huì)檢查其他節(jié)點(diǎn)的系統(tǒng)環(huán)境符不符合安裝要求,是不是有配置錯(cuò)誤,或者缺包、版本不對(duì)等問(wèn)題。運(yùn)行成功后證明各機(jī)器達(dá)到了部署dcos的要求,屏幕輸出如下,其中紅色錯(cuò)誤依舊是未聯(lián)網(wǎng)導(dǎo)致的,可以忽略。 - 正式安裝
bash dcos_generate_config.ee.sh --deploy,在上一步環(huán)境檢查順利通過(guò)以后,執(zhí)行deploy,其實(shí)就是從boot節(jié)點(diǎn)把安裝鏡像下發(fā)到各個(gè)節(jié)點(diǎn)而已,上一步?jīng)]問(wèn)題這一步一般也不會(huì)出錯(cuò)。運(yùn)行成功后證明各機(jī)器已經(jīng)成功安裝dcos,屏幕輸出如下圖,紅色錯(cuò)誤依舊忽略。 - 確保服務(wù)啟動(dòng)并且正常運(yùn)行
bash dcos_generate_config.ee.sh --postflight,這步其實(shí)就是boot去各個(gè)節(jié)點(diǎn)把docker鏡像拉起來(lái),DCOS的那些組件像mesos master 、slave 、marathon、mesos-dns等都是運(yùn)行在docker里,另外具體配置信息也是boot節(jié)點(diǎn)通過(guò)環(huán)境變量這種方式幫你注入進(jìn)去,這一步一般也不會(huì)出現(xiàn)問(wèn)題。運(yùn)行成功后dcos服務(wù)已經(jīng)啟動(dòng),屏幕輸出如下圖,護(hù)色錯(cuò)誤依舊忽略。 - dcos服務(wù)監(jiān)控
監(jiān)控dcos服務(wù)的網(wǎng)址為http://,如下圖所示,當(dāng)Hostname前面的圓形的狀態(tài)圖標(biāo)為綠色時(shí),代表DC/OS的接口已經(jīng)可用了:8181/exhibitor/v1/ui/index.html - 登陸DC/OS
登陸DC/OS系統(tǒng)的接口為http://,登陸后界面如下圖/
< li>10.107.18.39
< 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>10.107.19.1
process_timeout: 10000
resolvers:
< li>8.8.8.8
< li>8.8.4.4
ssh_key_path: genconf/ssh_key
ssh_port: 22
ssh_user: root
telemetry_enabled: false
oauth_enabled: false
注意:如果安裝過(guò)程中出現(xiàn)錯(cuò)誤需重新安裝的話,需要清除已經(jīng)安裝的文件。具體做法是新建一個(gè)uninstall.sh文件,文件內(nèi)容如下,將該文件改為可執(zhí)行文件,然后執(zhí)行即可。
/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詳解
文章來(lái)源:http://m.fisionsoft.com.cn/article/cospcjh.html


咨詢
建站咨詢
