Deis on DigitalOcean 部署小記
Deis 提供的 Documents 比較零散, 很多人看得雲裡霧裡.
在下參悟多日, 經過數次嘗試 (S/L 大法好) , 終於成功在 DigitalOcean 成功部署 Deis PaaS 系統 (3 nodes) .
前期準備
首先你需要 clone dies 提供的一個 git 倉庫, 裡面提供了一些工具用來進行前期準備.
1 | $ git clone https://github.com/deis/deis.git |
然後, 最好為 Deis 專門生成一個 RSA Key
1 | $ ssh-keygen -q -t rsa -f ~/.ssh/deis -N '' -C deis |
接著在 git 倉庫根目錄執行下面的指令生成一個最小集群 (3 nodes, 2G RAM)
1 | $ make discovery-url |
設定 DNS, 你需要設定如下記錄 (用上一條指令返回的三個 IP 取代下面對應的 IP) :
1 | deis-1 IN A 104.131.93.162 |
設定 Deis
因為 DigitalOcean 沒有提供安全組設定, 所以使用 iptables 來實現轉發, 在 git 倉庫根目錄使用下面的命令 (記得用你自己的域名替換 example.com)
1 | $ for i in 1 2 3; do ssh core@deis-$i.example.com 'bash -s' < contrib/util/custom-firewall.sh; done |
在你的電腦中安裝 deisctl (參考)
然後確認你所安裝的 deisctl 版本和你的 deis node 一致
1 | $ deisctl --version |
啟動 ssh-agent 並且導入 RSA 密匙
1 | $ eval `ssh-agent -s` |
準備環境變量, 替換下面的 IP 為三個 node 中任意一個的 IP 或者域名
1 | $ export DEISCTL_TUNNEL=104.131.93.162 |
設定私鈅和節點域名, 安裝并啟動 deis 平台 (這一步之前記得到 DigitalOcean 裡面創建個快照)
1 | $ deisctl config platform set sshPrivateKey=~/.ssh/deis |
這樣部署工作就全部完成了
注:如果執行 deisctl install platform 時出現 timeout, 可以執行 export FLEET_ETCD_REQUEST_TIMEOUT=5000 增大超時時間設定.