Cloud Foundry部署記錄

Cloud Foundry是一款開源的PaaS平台,地位應該是處在里程碑式的產品。目前的大多數工業領域雲架構產品均基於Cloud Foundry進行的二次開發,可以說底層的框架已經非常成熟了。隨著容器技術的流行,Cloud Foundry中也增加了對Docker的支持,在CF的容器發展過程歷經了:Warden-Docker-Garden

部署一:

部署腳本:cf_nise_installer

環境:Ubuntu 16.04 server

硬體:vsphere虛擬化,16GB memory,300GB HDD space,vCPU : 4

Cf_nise_installer是基於nise_bosh進行部署Cloud

Foundry的一種簡化方法,僅需兩條命令即可完成部署。

Nise的意思在日語里是偽、假的意思,nise_bosh也是一個輕量級的bosh模擬器,在該項目中,由一系列的腳本組成來簡化在單機部署Cloud Foundry的步驟。

Github地址:github.com/yudai/cf_nis

推薦部署環境為:

操作系統:Ubuntu 14.04 64bit (Trusty)

Do NOT install

RVM to avoid conflicting with RBenv

硬體:8GB+ free HDD space 2GB+

memory

由於管理員暫無14.04的鏡像,嘗試部署在16.04上,部署命令非常簡單:

sudo apt-get install curl

bash < <(curl -s -k -B raw.githubusercontent.com${INSTALLER_BRANCH:-master}/scripts/bootstrap.sh)

中間會遇到下載資源超時的報錯,錯誤日誌類似於:HTTP Client…time out之類的。

遇到這種情況繼續執行上面的第二條命令bash….即可,已下載完成的包會從本地的cache中直接載入,不會重複下載。在後續安裝過程中會多次出現該錯誤,由於中國的網路條件所限,只能盯著重複執行該命令。

後續部署過程很順利,安裝完成後會提示如果操作系統為Ubuntu 10.04需要重啟系統。雖然部署環境為Ubuntu 16.04,為了保險起見重新啟動了系統。

按照步驟:

cd cf_nise_installer/scripts/

sudo ./start.sh

進入該腳本查看內容可知,該腳本為自動監視Cloud Foundry相關服務及進程啟動的過程。

啟動過程大概需要10分鐘左右,其中:warden和 dea_next 在最後才拉起來。

此時伺服器端已經部署完畢,接下來是客戶端。

在本地電腦安裝 Cloud Foundry的CLI,安裝完成後輸入 cf –v進行測試。

但是在本此部署中,登陸cf login, 創建org和space均可完成,然而在cf push時出現了stage error,推送APP後綁定地址、上傳文件均可完成,在stage打包的過程中長時間無反應。

在搜索了幾乎所有的相關信息無果,查看項目的github問題頁面,有的人是通過安裝系統更新後自動解決的,有的是通過安裝依賴包解決的,均嘗試後無法解決。

在本次部署中,完成了伺服器端所有服務的安裝和啟動,但是無法在CLI上推送啟動APP,

在其他人的使用cf_nise_installer的部署博文中,也未看到有成功啟動app的截圖和說明。

部署二:

部署腳本:cf_nise_installer

環境:Ubuntu 14.04 server

硬體:vsphere虛擬化,16GB memory,300GB HDD space,vCPU : 4

這次我自己找了Ubuntu 14.04的鏡像,完全按照項目中推薦的配置進行部署。

流程與部署一中的完全一致,然而到了啟動服務的一步:

Warden not monitored

Dea_next not monitored

這兩個服務始終無法啟動,長時間的無法啟動會伴隨著啟動腳本的超時退出。此時仍可使用CLI在客戶端登陸。懷疑第一次的部署是否真正啟動了warden服務。

部署三:

按照Cloud Foundry官網的流程使用bosh-lite進行部署,在我嘗試後,坑真的好多。

首先是virtual box的安裝,官網要求必須為5.1及以上的版本。由於網路原因,連virtualbox的下載界面都無法打開,嘗試若干次後,下載速度極低。解決方案:去國內的開源鏡像站下載,比如清華的。

在使用dpkg –I *.deb安裝後,使用vboxmanage –-version得知,如果不安裝一堆依賴包將無法正常啟動 virtualbox。安裝方法為: apt-get –f install

由於在vsphere的虛擬機上部署,嵌套虛擬化需要開通對應的CPU 虛擬化選項,如VT-X。在vsphere上,除了選擇模式外,還要在上面對客戶端開放虛擬化的選項里打勾。由於沒打勾導致了若干次未部署成功。

按照官網的指導步驟安裝bosh_cli後,發現所安裝版本為v2。

在部署過程中,發現在部署的最後一步,執行 generate-bosh-lite-dev-manifest腳本時,發現報錯信息:

Bosh status無法執行。

參考以下網頁: The difference between cli v1 and v2

發現在v2中已不再支持bosh status的調用方式,且與v1中有著較大差別。

且在generate-bosh-lite-dev-manifest中,有多條與bosh相關的命令均無法正常執行。

需要自行修改腳本後可以執行。

在執行後可能會發現,報錯未發現stemceil,報錯缺少release。

從bosh官網下載對應stemceil後,Upload-stemceil

Upload-release:

在Upload-release之前,需要更新cf-release中的子模塊信息,運行後發現會有4個左右的子模塊無法完成更新並報錯,原因在於從googlescource進行下載。解決方案:只找到類似的其他軟體的部署,基本都是掛vpn本地下載後上傳至伺服器。

那我不更新了直接Upload-release行不行,發現也是可以的,沒有報錯。

然後再次嘗試./generate-bosh-lite-dev-manifest 順利啟動。然而在虛擬機啟動過程中報錯,部分組件無法啟動。

重啟、安裝更新、重新部署等方式嘗試多次後無果,個人懷疑原因有二:一是更新的release組件與未更新的不匹配;二是虛擬機資源不夠,在單機部署始終存在問題。

部署四:

部署方案:pcf-dev

環境:Ubuntu 14.04 server

硬體:vsphere虛擬化,16GB memory,300GB HDD space,vCPU : 4

pivotal公司封裝了Cloud Foundry用於構建自身的生態圈,形成了PCF系列產品,該公司官網可以試用PCF的公有雲產品,免費的2G空間。

Pivotal公司同時提供開發測試環境供開發人員本地部署,名為pcf-dev,下載界面如下:

network.pivotal.io/prod

需要國外的賬號才能下載,請自行安排。

官方推薦至少8GB的內存空間(推薦16GB),至少20GB以上的硬碟(保險點50GB)。

安裝流程和步驟極其簡單,參考文檔如下:

docs.pivotal.io/pcf-dev

所需依賴項主要為Virtualbox 5.0+,由於在部署三中的多次折騰,已對該部分駕輕就熟。

安裝CF CLI環境,用來本地與pcf-dev進行交互。

按照步驟解壓下載的安裝包,chomod 修改可執行許可權,安裝插件。

在執行 cf dev start命令後,陷入漫長的等待期,期間一度以為伺服器宕機了,使用ifstat命令監控後台時發現確實在進行下載,只是速度慢的可憐,平均每秒20K左右的數據量。

下載和部署虛擬機都是一步到位,安裝部署過程非常簡單。需要考驗的就是耐性和公司的網路環境。

上傳一個標準的測試應用,期間下載buildpack耗費了一點時間,其他一切順利。

hello-spring-cloud運行實例

這是目前最簡單、最靠譜也是我唯一成功部署Cloud Foundry的方法。

從開始部署Cloud Foundry到最終部署完成共計花去了不到兩周的時間,對Cloud Foundry的認知也從表面逐漸深入,部署的過程本身也是學習的過程,對軟體的內在啟動、運行了解的過程。

從最初的nise_bosh開始,查找錯誤日誌,反覆嘗試無法解決,檢索到公有雲的試用,到後面bosh-lite和bosh的安裝部署,到修改腳本,到最終pcf-dev的部署。這一段經歷是自我反省和謀求出路的過程,畢竟跟領導把牛B吹出去了XD。

短短一段經歷,感慨良多,在此記錄,給新接觸的同行參考。

推薦閱讀:

TAG:PaaS | 開源項目 | 雲平台 |