天天看點

Mesosphere DCOS快速部署手冊及錯誤處理方法

Mesosphere DCOS快速部署手冊

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。

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/

中國聯通研究院——軟體與系統實驗室

.