DC/OS專題之安裝部署篇
DC/OS的三種安裝方式
- GUI方式
- CLI命令列方式
- 高階方式
本文中使用CLI命令列方式進行安裝,同時也會附帶介紹一下另外兩種。
事前準備 :硬體
DC/OS有如下4種方式的安裝:
- Local
- Cloud
- Custom Cloud
- On-Premises
其中Local是與Vagrant進行結合,官方稱其最少需要16G的記憶體。Cloud和Custom Cloud都是安裝到AWS等雲平臺上。On-Premises的方式可以做自己的DC/OS本地部署。本文采用此種方式進行部署。此種方式目前支援兩種Linux的作業系統,CentOS和CoreOS,本文采用CentOS7.2。所需node數量官方稱至少4臺,每臺最低4G/2CPU的配置。本文僅僅是學習和研究的目的,使用3臺機器,每臺1G/1CPU的配置進行安裝。
事前準備
安裝CentOS, 按照以下標準準備3臺CentOS
核心:>= 3.10
overlayfs啟用
docker使用overlayfs方式安裝
更新到最新的package
關閉selinux和防火牆
3臺機器的主機名(可以自行自由改變)
host131: 192.168.32.131: BootStrap主機,用於安裝
host132: 192.168.32.132: Master
host133: 192.168.32.133: Agent
下載DC/OS安裝檔案
從下面的地址下載的DC/OS的安裝檔案,我使用的是1.7.0的EarlyAccess版本。
https://downloads.dcos.io/dcos/EarlyAccess/dcos_generate_config.sh
安裝前準備
安裝目錄下需要提前準備的檔案
安裝準備:下載dcos_generate_config.sh
curl -O https://downloads.dcos.io/dcos/EarlyAccess/dcos_generate_config.sh
安裝準備:準備config.yaml
mkdir genconf
cd genconf
生成DC/OS所需要的config.yaml檔案
以下為本次安裝的例子,可供參照
---
agent_list:
- 192.168.32.133
# Use this bootstrap_url value unless you have moved the DC/OS installer assets.
bootstrap_url: http://192.168.32.131:8848
cluster_name: 'DCOS'
master_discovery: static
master_list:
- 192.168.32.132
resolvers:
- 8.8.4.4
- 8.8.8.8
ssh_port: 22
ssh_user: root
注意點:
以下是config.yaml中必須有的內容
agent_list
master_list
ssh_user
bootstrap_url: http://192.168.32.131:8848,這種寫法是為了master和agent能夠訪問到bootstrap節點
另外,除了Vagrant的Local安裝之外,DC/OS執行起來的最小Node,3臺已經是最少了,要想更少可能會碰到一些麻煩。
安裝準備:ip-detect
ip-detect檔案為了在安裝的過程中能確認到正確唯一的IP地址。
以下為本次安裝的例子,可供參照
#!/usr/bin/env bash
set -o nounset -o errexit
export PATH=/usr/sbin:/usr/bin:$PATH
echo $(ip addr show eth0 | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)
注意點:
在虛擬機器中安裝 或者機器裝有多張網路卡可能會導致上述官方提供的簡單指令碼無法直接使用。如果需要更改,也是eth0的地方改成你自己。 確認方法可以用如下簡單的方法執行一下,如果能夠取得到正確的IP即可。
安裝準備:ssh_key
生成安裝使用者的ssh key,為方便,本文使用root使用者
安裝準備:打通ssh通路
使用ssh-copy-id打通ssh通路,安裝過程中需要打通的是bootstrap節點到master和agent的ssh通路。具體使用命令如下:
ssh-copy-id -i 192.168.32.132
ssh-copy-id -i 192.168.32.133
如果你對ssh的設定很熟悉,完全可以不必使用ssh-copy-id,只需要注意authorized_keys和known_hosts設定好ssh命令列能無需密碼執行即可。DC/OS的安裝的時候會預設的到genconf下面去尋找叫ssh_key的檔案,所以需要把該檔案提前準備好。不然會提示:ssh_key_path: could not find ssh private key: /genconf/ssh_key的錯誤。需要注意的是,使用生成的rsa的祕鑰id_rsa作為安裝時需要使用的key。
key的許可權是600,ssh通路設定時候,許可權加大比如設定成666很多時候都回導致不通,這是因為ssh在設計的目的是為了將許可權最小化的思路有關。
Step 1
安裝:生成定製安裝程式
執行命令
dcos_generate_config.sh --genconf
注意:部署到實際環境中希望對使用者動作做進一步限制使用其他使用者是,碰到許可權問題時候加上sudo實施。
執行結果例與分析
[root@host131 dcos]# bash dcos_generate_config.sh --genconf
Extracting image from this script and loading into docker daemon, this step can take a few minutes
dcos-genconf.14509fe1e7899f4395-3a2b7e03c45cd615da.tar
Running mesosphere/dcos-genconf docker with BUILD_DIR set to /root/dcos/genconf
分析:此處會稍微花一點時間,同時Docker需要保證是可用的狀態,因為安裝程式在此處會把mesosphere/dcos-genconf的映象load到docker中
====> EXECUTING CONFIGURATION GENERATIONG
省略
Package filename: packages/dcos-config/dcos-config–setup_e51eb828513de2494ec4c1d3ecb8c100f805a098.tar.xz
Generating Bash configuration files for DC/OS
Package filename: packages/dcos-metadata/dcos-metadata–setup_e51eb828513de2494ec4c1d3ecb8c100f805a098.tar.xz
[root@host131 dcos]#
“`
安裝之後的結構
Step 2
預安裝所需功能
執行命令:
bash dcos_generate_config.sh –install-prereqs
基本上ssh通路通的話,此處不會有太多問題。不過此種方式官方稱只適合CentOS和RHEL
Step 3
預裝檢查
執行命令:
bash dcos_generate_config.sh –preflight
此處出現最多的問題在於多次安裝,如果已經安裝可能會導致在預裝檢查失敗。這種情況可以使用如下命令進行解除安裝。依然有問題的話手動刪除所有節點安裝過程中安裝的/opt/mesos和/var/lib/zookeeper即可。
bash dcos_generate_config.sh –uninstall
另外,埠的佔用等等也有可能會產生問題,因為是命令列安裝,可以通過修改步驟1種自動生成出來的genconf/serve/dcos_install.sh來解決,因為在此處所有的port號都hardcoding出來了,可以自行修改以避免衝突,後續的DC/OS在此處一定會有一些更加人性化的改善不至於讓它的使用者去自行修改安裝程式。
Step 4
安裝
執行命令:
bash dcos_generate_config.sh –deploy
注意事項:
請務必確保如下兩點:
- firewalld必須關閉
- nginx必須在docker中執行起來
nginx執行命令:
docker run -d -p 8848:80 -v $PWD/genconf/serve:/usr/share/nginx/html:ro nginx
請到genconf的父目錄去執行該命令,否則傳給nginx的Image的-v不正確
使用docker ps確認
blob.png
Step 5
確認服務執行狀態
執行命令:
bash dcos_generate_config.sh –postflight
Step 4的安裝沒有問題的話,此處基本不會有問題。
Step 6
確認Zookeeper
連線URL:
http://:8181/exhibitor/v1/ui/index.html
Step 7
確認DC/OS圖形介面
連線URL:
http:///此處容易出現的問題點:DC/OS圖形介面無法啟動起來
DC/OS採用Systemd來部署他自己的應用,可以使用如下命令確認和排查問題。
- journalctl -u dcos-mesos-master -b
- systemctl list-unit-files |grep dcos
- systemctl status 服務名稱(結合journalctl查的內容確認)
-
Google/Github/Microsoft的任何方式的登陸通過即可,赤裸的植入式廣告.
然後就可以看到DC/OS的介面了
Dashboard
Service
Nodes
你的DataCenter現在還空空如也
System
當前有24個Components,都是健康的,unhealthy的是0個,看起來一切正常的樣子
通過Organization的介面新增使用者
管理Repositories
總結
雖然整體來說安裝稍微繁瑣,並且也有一些小問題,比如port一旦被佔用的話就只好修改安裝檔案,甚至圖形版即使修改也無法繼續,但是由於仍然是Earlyaccess版本,所以還是非常期待其正式版本的釋出.
相關文章
- Centos 從安裝到部署之 Docker篇(二)CentOSDocker
- Redis之安裝部署Redis
- Laravel入門(安裝部署篇)Laravel
- DC/OS很難理解嗎?
- Cobbler部署指南之安裝虛擬化Xen系統篇薦
- MySQL 5.6.21下載安裝之安裝篇(二)MySql
- Cent OS 安裝 RedisRedis
- mac os安裝macvimMac
- Redis之Sentinel高可用安裝部署Redis
- 【[Oracle】-【安裝】-Cent OS安裝Oracle ClientOracleclient
- 對比homeassistant和智汀家庭雲之docker安裝部署篇Docker
- VMware 下安裝 Mac OS 和 Chrome OSMacChrome
- 安裝部署hzero遇到的問題
- Kubernetes專欄 | 安裝部署(一)
- 持續整合工具之Jenkins安裝部署Jenkins
- Chrome OS超便捷安裝指南Chrome
- 在elementary os中安裝dockerDocker
- Elementary os完全解除安裝DockerDocker
- mac os環境安裝需知Mac
- Cent os 6.3上安裝rlwrap
- Mac OS下安裝wgetMacwget
- Mac OS下pip安裝 pillowMac
- Zabbix安裝部署
- canal安裝部署
- Doris安裝部署
- greenplum安裝部署
- SQLT 安裝部署SQL
- ZooKeeper 安裝部署
- Dubbo安裝部署
- Zookeeper安裝部署
- ELK安裝部署
- chromedriver安裝部署Chrome
- 【Hadoop】大資料安裝部署之虛擬機器的安裝Hadoop大資料虛擬機
- PowerShell安全專題之攻擊工具篇
- 在企業中部署NAV10.0(上)——安裝篇
- 分散式檔案系統之FastDFS安裝部署分散式AST
- Centos 從安裝到部署之 node/mongo/nginx(一)CentOSGoNginx
- Centos 從安裝到部署之 自動化構建及部署(三)CentOS