Openshift - 初次部屬 App 應用程式
Contents
部屬一個雲平台的 App 應用程式在 OpenShift 是非常容易達成的,除了最平易近人的 Web Console GUI 之外還能透過 oc cli 指令來達成部屬。
1. Web Console 方式部屬
初學請先使用 kubeadmin 最高 Cluster 管理員帳號登入,後續進階會學習到 identity provider 設定 Oauth custer resource(CR)及 RBAC 權限管理後可以更細粒度操作。
單機版範例
此文章使用的為單機版 Openshift,此版本僅供測試與學習使用。
安裝啟用方式可以參考 HowHow 文章 。
單機版時常出現錯誤或是較慢是很正常的…有時需要耐心等待一下,正常 Cluster 創建需要較大的計算資源池才能執行及部屬。
- 登入頁面後選擇 Administrator 下拉選單後點擊 Developer。
Tip
OpenShift Web Console 會依據瀏覽器語言設定顯示語言,建議點擊右上角帳號變更語言成英文。
- 進入 Developer 頁面後,點擊創建 Project。
- Project 取名為 lab01 後,點擊創建
- 確認目前項目為 lab01 後,點擊 Container Images。
- 輸入 Image ->
quay.io/redhattraining/hello-nginx:v1.0
,點擊創建 (其他參數與值使用自動生成即可)。
與 Docker Hub Image 差異
不使用 Docker Official Nginx Image 是因為 SCC(Security Context Constraints) 會導致要額外設定,後續進階後續進階會學習到。
- 創建後會在拓譜圖中顯示其應用,點擊應用等待下載Image及自動部屬數分鐘( Pod 狀態為 Running)後即可點擊 URL 。
- Openshift 會自動攜帶憑證的 https 入口的 Nginx 服務。
- 回到 Web Console ,點擊 Details 可以手動調整所需應用的副本數量,新增或是減少都行。
2. CLI 指令方式部屬
- 使用 kubeadmin 叢集管理員登入
|
|
- 創建新 Project 為 lab02
|
|
- 將目前 Project 切換成 lab02
|
|
Namespaces
OpenShift 的 Project 背後基底就是 K8s 的 Namespaces 的物件,在操作 k8s 不同項目物件時需要帶上 -n 參數,OpenShift 在此做了延伸的操作,切換 Projects 就類似於
kubectl config set-context –current –namespace=lab02
。- 創建名為 hello-nginx 應用程式,並使用
quay.io/redhattraining/hello-nginx:v1.0
Image。`
|
|
new-app
OpenShift 的 new-app 並不一個物件,背後其實是自動做了很多事情,自動創建 Deployment、Svc、Imagestream ( OCP 特有的)物件。
- 創建攜帶 OpenShift 自簽的萬用憑證路由,並映射其應用之 SVC。
|
|
- 查看路由網址
|
|
Route
自動生成的 host name 其實就是 Deploy 物件 + NS 物件 + Cluster 所組成,當然也可以自定義所要的名稱。
- 使用 Curl 查看其應用網頁
|
|
- 手動擴展應用的副本數
|
|
3. 小結
OpenShift Paas 其實是非常強大,對於 Developer 可以不用去在乎底層 Infrastructure,專心於程式部屬,在 Web Console 介面上就能產生所需對應的基礎設施,對於 Infra 管理者所要學習的課程就是很大的一門學問了。
如果你還沒有註冊 Like Coin,你可以在文章最下方看到 Like 的按鈕,點下去後即可申請帳號,透過申請帳號後可以幫我的文章按下 Like,而 Like 最多可以點五次,而你不用付出任何一塊錢,就能給我寫這篇文章的最大的回饋!