1. 程式人生 > >openshift/origin學習記錄(5)——新增Template(模板)並基於模板部署應用

openshift/origin學習記錄(5)——新增Template(模板)並基於模板部署應用

學習資料來源於官方英文文件與《開源容器雲OpenShift》一書,因為剛開始學習,不確定部落格的正確性,以下內容僅供參考。

新增模板

為了滿足使用者對複雜應用部署的需求,提供應用部署的效率,openshift引入了應用部署模板(Template)的概念。

通過Template,可以定義一個或多個需要部署的映象,定義依賴的物件,定義可供使用者輸入的配置引數項。

  • 以管理員登入,並切換到openshift工程。
# oc login -u system:admin
# oc project openshift

openshift是一個特殊的專案,在這個專案下建立的所有Image Stream及Template對叢集內所有的使用者和專案可見。

如果Image Stream及Template在其他專案下建立,則只能在建立這些物件的專案中可見。

以cakephp-mysql.json為例。

# oc create -f https://raw.githubusercontent.com/openshift/origin/release-3.6/examples/quickstarts/cakephp-mysql.json -n openshift
# oc get template -n openshift

這裡寫圖片描述

部署應用

以上文匯入的cakephp-mysql模板為例。

  • 登入openshift web控制檯。新建工程。名為hello-world-php,專案顯示名為Hello World Php。

這裡寫圖片描述

  • 在服務目錄過濾器裡輸入cake,找到cakephp-mysql-example模板。

這裡寫圖片描述

  • 選擇cakephp-mysql-example模板,跳轉至Template的引數輸入頁面。

這裡寫圖片描述
主要修改Application Hostname(暴露的主機名,將路由到CakePHP的服務)。這裡我填寫的是master.example.com。

需要注意,master.example.com只是測試域名,並不能被網際網路域名解析器解析。
需要修改瀏覽器所在機器的hosts檔案,手動新增解析將master.example.com指向openshift叢集master所在的IP地址。(多節點叢集需要指向Router所在的ip)


Windows系統: C:\windows\system32\drivers\etc\hosts
Linux系統:/etc/hosts

  • 點選Template引數輸入頁面底部的Create按鈕,執行部署。跳轉至部署完成介面。

這裡寫圖片描述

  • 點選Continue to overview連結。

跳轉到專案的概覽頁面。Openshif會在後臺建立相應的物件,並下載相關的映象。

由於CakePHP應用涉及一個映象構建的過程,即Source to Image,所以構建速度較慢。

這裡寫圖片描述

  • 展開cakephp-mysql-example。

這裡寫圖片描述

  • 點選view full log可以檢視實時日誌輸出。

這裡寫圖片描述

可以看出,Openshift會從GitHub倉庫中下載指定的PHP原始碼,然後將程式碼注入一個含PHP執行環境的映象,最後生成一個包含PHP應用以及PHP執行環境的新映象,並將新的映象推送到前文部署的內部映象倉庫中。

如果構建過程中出現docker push映象到內部映象倉庫的錯誤,需要檢查內部映象倉庫是否正確部署與配置。即有沒有忘記設定docker的--insecure-registry引數

  • 構建完成後,單擊左側選單欄的Overview按鈕,回到專案主頁。

這裡寫圖片描述

這裡寫圖片描述

至此demo應用部署成功。