Openshift概念

Openshift是一個開源容器云平臺,是一個基于主流的容器技術Docker和K8s構建的云平臺。Openshift底層以Docker作為容器引擎驅動,以K8s作為容器編排引擎組件,并提供了開發(fā)語言,中間件,DevOps自動化流程工具和web console用戶界面等元素,提供了一套完整的基于容器的應用云平臺。

Red Hat是Openshift的最大貢獻者。

Openshift包括社區(qū)版和企業(yè)版

社區(qū)版: Openshift Origin

企業(yè)版: Openshift Online/Openshift Enterprise

【重要概念】

system:admin為默認的集群管理員,擁有最高的權限。該用戶沒有密碼,登陸依賴于證書密鑰。

Service Account 是 Openshift 中專門供程序和組件使用的賬號。不同的用戶或組關聯(lián)不同的角色,同時關聯(lián)不同的SCC(security context constriant)安全上下文

【架構】

自底而上包括幾個層次:基礎架構層,容器引擎層,容器編排層,PaaS服務層,界面及工具層。

基礎架構層:為Openshift平臺的運行提供基礎的運行環(huán)境。Openshift支持運行在物理機,虛擬機(kvm,vmware,virtual box等),公有云(阿里云,AWS等),私有云,混合云上。

容器引擎層:以當前主流的Docker作為容器引擎。

容器編排層:以Google的k8s進行容器編排。

PaaS服務層:容器云平臺的最終目的是為上層應用服務提供支持,提高開發(fā),測試,部署,運維的速度和效率。用戶在Openshift云平臺上可以快速的獲取和部署一個數(shù)據(jù)庫,緩存等。

界面及工具層:Openshift提供了多種用戶的接入渠道:Web控制臺,命令行,RestFul接口等

【核心組件】

1. Master節(jié)點

主控節(jié)點。集群內的管理組件都運行在Master節(jié)點上。Master節(jié)點負責集群的配置管理,維護集群的狀態(tài)。Master節(jié)點運行的服務組件:

API Server:負責提供Web console和RESTful API。集群內所有節(jié)點都會訪問API Server,更新節(jié)點的狀態(tài)及其上的容器狀態(tài)。

數(shù)據(jù)源(Data store):集群內所有狀態(tài)信息都會存儲在后端的一個etcd的分布式數(shù)據(jù)庫中。

調度控制器(Scheduler):負責按用戶輸入的要求尋找合適的計算節(jié)點。

復制控制器(Replication Controller):負責監(jiān)控當前容器實例的數(shù)量和用戶部署指定的數(shù)量是否匹配,若有容器異常退出,復制控制器發(fā)現(xiàn)實際數(shù)少于部署定義數(shù),從而觸發(fā)部署新的實例。

2. Node節(jié)點

計算節(jié)點。接收Master節(jié)點的指令,運行和維護Docker容器。Master節(jié)點也可以是Node節(jié)點,只是在一般環(huán)境中,其運行容器的功能是關閉的。

3. Project:在k8s中使用命名空間來分隔資源。同一個命名空間中,某一個對象的名稱在其分類中必須唯一,但在不同命名空間中的對象則可以同名。Openshift集成了k8s命名空間的概念,而且在其上定義了Project對象的概念,每一個Project會和一個namespace相關聯(lián)。

4. Pod:在Openshift中的容器都會Pod包裹,即容器都運行在Pod內部,一個Pod可以運行一個或多個容器,絕大多少情況下,一個Pod內部運行一個容器。

5. Service:由于容器是一個非持久化的對象,所有對容器的修改再容器銷毀后都會丟失,而且每個容器的IP地址會不斷變化。k8s提供了Service組件,當部署某個應用時,會創(chuàng)建一個Service對象,該對象與一個或多個Pod關聯(lián),同時每個Service分配一個相對恒定的IP,通過訪問該IP及相應的端口,請求就會轉發(fā)到對應Pod端口。除了可通過IP,也可以通過域名訪問Service,格式為:..svc.cluster.local

6. Router和Route:Service提供了一個通往后端Pod集群的穩(wěn)定入口,但是Service的IP地址只是集群內部的節(jié)點和容器可見。外部需通過Router(路由器)來轉發(fā)。Router組件是Openshift集群中一個重要的組件,它是外界訪問集群內容器應用的入口。用戶可以創(chuàng)建Route(路由規(guī)則)對象,一個Route會與一個Service關聯(lián),并綁定一個域名。Route規(guī)則被Router加載。當集群外部的請求通過指定域名訪問應用時,域名被解析并指向Router所在的計算機節(jié)點上,Router獲取該請求,然后根據(jù)Route規(guī)則定義轉發(fā)給與這個域名對應的Service后端所關聯(lián)的Pod容器實例。上述轉發(fā)流程類似于nginx。Router負責將集群外的請求轉發(fā)到集群的容器,Service則負責把來自集群內部的請求轉發(fā)到指定的容器中。

7. Persistent Storage:容器默認是非持久化的,所有的修改在容器銷毀時都會丟失。Docker提供了持久化卷掛載的能力,Openshift除了提供持久化卷掛載的能力,還提供了一種持久化供給模型即PV(Persistent Volume)和PVC(Persistent Volume Claim)。在PV和PVC模型中,集群管理員會創(chuàng)建大量不同大小和不同特性的PV。用戶在部署應用時顯示的聲明對持久化的需求,創(chuàng)建PVC,在PVC中定義所需要的存儲大小,訪問方式。Openshift集群會自動尋找符合要求的PV與PVC自動對接。

8. Registry:Openshift內部的鏡像倉庫,主要用于存放內置的S2I構建流程所產生的鏡像。

9. S2I:Source to Image,負責將應用源碼構建成鏡像。

步驟:

1)用戶輸入源代碼倉庫的地址

2)選擇S2I構建的基礎鏡像

3)觸發(fā)構建

4)S2I構建執(zhí)行器從指定的源碼倉庫地址下載代碼

5)S2I構建執(zhí)行器實例化Builder鏡像,并將代碼注入到Builder鏡像

6)S2I構建執(zhí)行器按照預定義的邏輯執(zhí)行源代碼的編譯,構建

7)生成新的鏡像

8)S2I構建執(zhí)行器將新鏡像Push到Registry

9)更新相關的Image Stream信息

【核心流程】

1)創(chuàng)建應用:用戶通過web控制臺或oc命令創(chuàng)建應用,Openshift平臺根據(jù)用戶輸入的源碼地址和Builder鏡像,生成構建配置Builder config和部署配置Deployment config,Service,Route等。

2)觸發(fā)構建

3)實例化構建:平臺根據(jù)Builder config實例化Builder對象,下載代碼,并將代碼注入到Builder對象,執(zhí)行編譯,構建

4)生成新鏡像并Push到Registry

5)更新相關的Image Stream信息

6)觸發(fā)部署:當Image Stream更新后,觸發(fā)平臺部署鏡像

7)實例化鏡像部署:平臺根據(jù)Deployment config實例化部署,生成Deploy對象

8)生成Replication Controller

9)部署容器:通過Replication Controller,平臺將pod及容器部署到各個節(jié)點上

10)用戶訪問:用戶通過瀏覽器訪問Route對象中定義的應用域名

11)請求處理并返回:請求到達Router組件后,通過Route轉發(fā)給相關聯(lián)的Service,最終到對應的容器實例。

參考:開源容器云Openshift

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,431評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,637評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,555評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,900評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,629評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,976評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,976評論 3 448
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,139評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 49,686評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,411評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,641評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,129評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,820評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,233評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,567評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,362評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,604評論 2 380

推薦閱讀更多精彩內容