1. 程式人生 > >openshift/origin學習記錄(2)——新增Router元件

openshift/origin學習記錄(2)——新增Router元件

學習資料來源於官方英文文件與《開源容器雲OpenShift》一書,因為剛開始學習,不確定部落格的正確性,以下內容僅供參考。
Router是openshift叢集中的一個重要元件,它是外部訪問叢集內容器應用的入口。
叢集外部的請求都會到達Router,由Router分發到具體的容器中。

Router元件需要讀取叢集的資訊,所以它需要關聯一個系統賬號Service Account,併為這個賬號授權。

以下操作基於oc(命令列客戶端)指令實現。

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

這裡寫圖片描述

# oc project default

這裡寫圖片描述

  • 建立Router。
# oadm policy add-scc-to-user privileged system:serviceaccount:default:router
# oadm router router --replicas=1 --service-account=router

這裡寫圖片描述

在實際生產時,為了達到高可用的效果,可以通過設定--replicas建立奪個Router例項實現負載均衡並防止單點失效。

  • 檢視Router狀態。
# oc get pod -n default
# ss -ltn|egrep -w "80|443"

這裡寫圖片描述

通過檢查實驗主機上的埠監聽狀態,可以發現主機的埠80、443正在被Haproxy監聽。

從技術上來說,Router就是一個執行在容器裡的Haproxy

至此,Router元件部署已經完成。

之後,使用者可以建立route物件,稱為route規則,一個route規則會與一個service相關聯,並且繫結一個域名。

route規則會被Router載入。當用戶通過指定的域名訪問應用時,域名會被解析並指向Router所在的計算節點上。Router獲取這個請求後,會根據route規則定義轉發給與這個域名對應的service後端相關聯的Pod容器例項。

Router負責將叢集外的請求轉發到叢集的容器。
Service負責將叢集內的請求轉發到指定的容器。
一個對外,一個對內。