July 27th, 2016

安裝 Mesos
在本地端透過 Vagrant 來安裝 Mesos
可以參考 Install Mesos via Vagrant.
心得:
雖然官方文件相當的清楚,但是 Vagrant 本身就有一些雷要踩.不論是
加上如果沒注意到記憶體跟 CPU 極有可能在 Mesos 裡面會出現無法 Scale Task 的狀況.
關於雷的部分,講明白點….
vagrant的 private IP 不是每次vagrant up都會正確,經常會跑掉.得要vagrant restart.vagrant彼此間要共享檔案,可以透過/vagrant這個資料夾.不過/vagrant只是 guest OS 跟 host OS 溝通的共享資料夾,如果兩個 guest OS 要共享,還是得透過 host OS. 然而,共享並不是 real time 而是啟動的時候由 host 帶過去到 guest 的/vagrant,如果要複製 guest file 到 host 是可以即時,如果要另外一個 guest 拿到,就得要重啟 guest.
安裝 Mesos CLI 流程
- 先安裝
pipcurl https://bootstrap.pypa.io/get-pip.py -o get-pip.pysudo python get-pip.py
- 在來安裝 virtualenv
sudo pip install virtualenv
- 安裝
mesos.clisudo pip install mesos.cli
在 GCE (Google Compute Engine) 安裝 DC/OS
參考這一篇
幾個東西要注意一下:
- 記得要先登入 Google Cloud 帳戶
gcloud auth login - 在修改 https://github.com/dcos-labs/dcos-gce 安裝設定的
group_vars/all的時候,記得以下資料:bootstrap_public_ip: 要參考原先設定 bootstrap 的 IP.必須確認該 IP 的格式與必須要確認一開始的 bootstrap 機器跟你要建立的master與agent是同個 subnet.subnet: 必須要設定一個新的 subnet (不能使用default) 一定得建立一個新的 subnet .- 不然會出現錯誤代碼如下:
The referenced subnetwork resource cannot be found
- 不然會出現錯誤代碼如下:
- 修改
hosts這個檔案裡面的資料:master0 ip必須要給訂一個內部 IP ,這裡不能隨便填,也不能寫192.168.0.1這類的.必須符合 GCP 的內部 IP 格式.建議.- 不然會出現錯誤代碼如下
Requested internal IP is outside the subnetwork CIDR range
- 不然會出現錯誤代碼如下
- 執行
ansible-playbook -i hosts install.yml前必須確認自己有跑過 GCP 登入gcloud auth login.不然會一直卡在權限不足的錯誤. [ 20160803 更新: 不僅僅是單獨使用者需要登入gcloud,你必須要確認該機器的 root 也有登入過gcloud] - 如果跑
ansible-playbook -i hosts install.yml一直卡在 docker image 的問題,建議把sudo docker images清乾淨. - 如果在最後的設定出現任何錯誤,記得確認
master0是否有被建立,一直會出現錯誤.- 錯誤代碼如下:
The resource 'projects/YOUPROJECT/zones/asia-east1-c/instances/master0' already exists
- 錯誤代碼如下:
Docker 1.12 更新:
20160803 由於 Docker 更新 1.12 後,目前無法順利安裝 DCOS .
Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.
安裝 DC/OS 成功後的登入
直接打開 master0 的 external IP 在網頁上就會出現 DC/OS 的登入畫面.