CloudFoundry AWS China Region安裝

最近,PaaS關鍵搜索熱度不斷升高,Pivotal Cloud Foundry在中國也加大了投入,並且取得了一定的成績。AWS China Region用戶數也在不斷增加。於是,在AWS中國區域部署了cloud foundry,感覺Aws 中國區與其全球服務差異不小,經歷了一些小坑,記錄一下希望對大家有些幫助。


1. AWS中國區處於中國的網絡環境下;

這個還是影響不小的,我們都知道cloud foundry的實現包括Java/C/Ruby/Golang/Shell,其依賴的庫數不勝數,而這些包及OS本身的鏡像,很多在國外,非常慢的網速加上牆,是擺在面前很大的障礙。解決的方法大概有以下幾個:


2. Ubuntu AMI不全的問題;

打開可愛的中國區頁面,可用的服務相比全球區域少多了。但總算有EC2可用,啓動一個實例開工吧:)。第一步選擇AMI就以爲自己看錯了,ubuntu的server只是14.04的純淨版,12.04都是有預裝軟件的版本。如果用14.04,你將遇到一些奇怪的問題,足夠使你感到無助,比如默認採用的內核3.13.0-48-generic似乎就沒有完整的cgroup的支持。內核3.13.0-52-generic似乎是支持的,可惜嘗試在AWS中國區上升級到此內核,仍然有問題,這塊嘗試下來需要點功夫。如果選擇12.04,由於無標準版,已經反饋給了AWS中國區的架構,期待後續的支持。

再有一個問題是,cloudfoundry組件較多,一個一個研究下來再安裝,恐怕需要點時間,必須得找個安裝工具。首先,想到原廠的BOSH,其需要下載指定的種子映像,很遺憾,AWS中國區暫時沒有,當然我們可以自己想辦法,比如從其它region下載再導入或是自己製作上傳,又是一把時間。算了,試試其它安裝工具吧。


3.  使用國內的鏡像;

-  ubuntu的系統鏡像,可參考 

Ubuntu應用之——apt-get更改源地址

 裏面有很多選擇,逐一嘗試吧,總有一個值得你擁有。有意思的是,使用sina的映像,有一個小時不好使,上網找了找,有位仁兄說,等等就好了,我回頭再試了下,果然:)。

- Ruby的鏡像,可使用萬能的淘寶,詳見淘寶ruby鏡像用法。速記如下:

  1. $ gem sources --remove https://rubygems.org/ 
  2. $ gem sources -a https://ruby.taobao.org/ 
  3. $ gem sources -l

- 自設代理,在tokyo或新加坡region開一臺機器,使用proxychains或tsock代理。

4. 自動化安裝工具;

可選的有:

- https://github.com/pivotal-cf/cloudformation-template

- https://github.com/wdxxs2z/script

https://github.com/yudai/cf_nise_installer

打開這些工程大家有什麼感覺?是不是也夠看一陣子的了,所以說cloud foundry還是夠大,安裝工具都要寫這麼多來弄:)。大家依喜好選擇吧。

下面是一些遇到過的問題和一些備忘筆記,及其可選的解決方法供參考;


1. Application failed to stage with the error"Failed setting memory limit: Permission denied;

這個錯誤出現在你好不容易安裝好了,可以登錄用戶創建應用了,部署時可能會碰到,參考:
   執行如下步驟修復此問題(參考https://github.com/yudai/cf_nise_installer/issues/72):
   a. sudo apt-get install linux-virtual
   b. memory.memsw.limit_in_bytes might be not be available on Ubuntu, we need Configure kernel parameters by editing the /boot/grub/grub.cfg file. The easiest way to set a value to the parameter is :
    perl -p -i -e 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"/g' /etc/default/grub
    /usr/sbin/update-grub
   c. sudo reboot
備註:如果在AWS上採用ubuntu-trusty-14.04-amd64-server-20150325 (ami-1220b22b), kernal id: aki-9e8f1da7啓動機器,此法無效。
2. 升級內核 
如果用14.04版本的時候,可能會遇到。當然我們可以重新編譯,但也有現在的編譯好的包可以直接升級,但在AWS 中國區升級發現有問題,最後安裝後執行了以下步驟完成升級:
-.   sudo apt-get install linux-virtual
-. sudo perl -p -i -e 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"/g' /etc/default/grub
-. edit /boot/grup/menu.lst, add:
 title           Ubuntu 14.04.2 LTS, kernel 3.13.0-52-generic
 root            (hd0)
 kernel          /boot/vmlinuz-3.13.0-52-generic root=LABEL=cloudimg-rootfs ro console=hvc0
 initrd          /boot/initrd.img-3.13.0-52-generic

 title           Ubuntu 14.04.2 LTS, kernel 3.13.0-52-generic (recovery mode)
 root            (hd0)
 kernel          /boot/vmlinuz-3.13.0-52-generic root=LABEL=cloudimg-rootfs ro  single
 initrd          /boot/initrd.img-3.13.0-52-generic 
-. sudo /usr/sbin/update-grub
-. sudo reboot
-. uname -r => 3.13.0-52-generic 
3. 一些Timeout問題;

安裝時經常因爲Timeout的問題導致失敗,解決辦法居然是6次以內不斷嘗試,看到這個方法覺得自己好奇怪,不過好多問題就這樣過了哇。。。。

4. Uninstall rvm;   "rm -rf ~/.rvm" (重試腳本時會用到,如果用cf_nise_install,也要清理目錄)
5. stdin: is not a tty"
sed sed -i 's/^mesg n$/tty -s \&\& mesg n/g' /root/.profile
dfs 
6.修改時區:tzselect; echo "TZ='Asia/Shanghai'; export TZ" /etc/profile

7. 其它:Pivotal目前文檔寫的還是不錯的,有空可以再翻看一下變化,參見 http://docs.pivotal.io/pivotalcf/getstarted/pcf-docs.html

一安裝成功後,我們會看到如下景象:
    

登錄:

部署應用:


檢查一下:


   


發佈了16 篇原創文章 · 獲贊 5 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章