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地址:https://github.com/yudai/cf_nise_installer
推薦部署環境為:
操作系統: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 https://raw.githubusercontent.com/yudai/cf_nise_installer/${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,下載界面如下:
https://network.pivotal.io/products/pcfdev
需要國外的賬號才能下載,請自行安排。
官方推薦至少8GB的內存空間(推薦16GB),至少20GB以上的硬碟(保險點50GB)。
安裝流程和步驟極其簡單,參考文檔如下:
https://docs.pivotal.io/pcf-dev/
所需依賴項主要為Virtualbox 5.0+,由於在部署三中的多次折騰,已對該部分駕輕就熟。
安裝CF CLI環境,用來本地與pcf-dev進行交互。
按照步驟解壓下載的安裝包,chomod 修改可執行許可權,安裝插件。
在執行 cf dev start命令後,陷入漫長的等待期,期間一度以為伺服器宕機了,使用ifstat命令監控後台時發現確實在進行下載,只是速度慢的可憐,平均每秒20K左右的數據量。
下載和部署虛擬機都是一步到位,安裝部署過程非常簡單。需要考驗的就是耐性和公司的網路環境。
上傳一個標準的測試應用,期間下載buildpack耗費了一點時間,其他一切順利。
這是目前最簡單、最靠譜也是我唯一成功部署Cloud Foundry的方法。
從開始部署Cloud Foundry到最終部署完成共計花去了不到兩周的時間,對Cloud Foundry的認知也從表面逐漸深入,部署的過程本身也是學習的過程,對軟體的內在啟動、運行了解的過程。
從最初的nise_bosh開始,查找錯誤日誌,反覆嘗試無法解決,檢索到公有雲的試用,到後面bosh-lite和bosh的安裝部署,到修改腳本,到最終pcf-dev的部署。這一段經歷是自我反省和謀求出路的過程,畢竟跟領導把牛B吹出去了XD。
短短一段經歷,感慨良多,在此記錄,給新接觸的同行參考。
推薦閱讀: