官术网_书友最值得收藏!

1.2 Kubernetes簡介

OpenShift是Kubernetes的一個發行版譯注2。Kubernetes最初是一個始于谷歌的開源項目,自2014年發布以來,由一群公司和個人進行開發和維護。Kubernetes社區由云原生計算基金會(Cloud Native Computing Foundation,CNCF)(https://cncf.io)進行正式管理和控制。自項目開始以來,紅帽公司一直是Kubernetes的主要貢獻者,在OpenShift的開發過程中,OpenShift的開源社區譯注3與Kubernetes社區進行了充分的協同工作。

Kubernetes之于OpenShift就好像Linux內核之于Linux發行版。Linux發行版將Linux內核與你直接使用的更熟悉的應用程序相結合,它還對你的登錄方式、文件存儲位置以及哪些軟件是必要的做出了一些基本的裁剪選擇,從而讓你直接使用Linux發行版進行工作,避免從頭開始構建操作系統。

Kubernetes定義了一組公共資源和操作它們的API。這些資源描述期望達到的狀態譯注4,并跟蹤集群的實際狀態譯注5以及在集群上運行的內容。Kubernetes試圖使一個資源的實際狀態與它的期望狀態相匹配,而且會一直在集群的生命周期內重復這樣的操作。這種觀察和處理的連續循環機制稱為校正循環(reconcile loop)。

僅僅依靠Kubernetes還不足以在生產環境中運行應用軟件。在你使用它做很多事情之前,還有很多決策要做,有很多組件需要配置。想象一下,你有一個應用程序的源代碼,需要在Kubernetes集群上部署這個應用程序。你將如何編譯源代碼或將其與容器鏡像中的解釋器譯注6配對打包?你的構建過程是否需要其他計算資源,比如專門的構建服務器?一旦鏡像構建完成,它將存儲在哪里,以便你的集群可以訪問它?是Docker Hub(https://hub.docker.com)或Quay(https://quay.io)這樣的公共容器鏡像倉庫(外部依賴項),還是你需要運行自己的私有鏡像倉庫?你的程序可能還依賴于其他程序,比如數據庫或應用服務器。這些程序將在哪里以及如何運行?你是在容器集群上運行它們,還是必須維護另一個系統?這些都是基本的考慮。解決了這些問題,你可能就擁有了一個正在運行的pod,但同時這也帶來了一組新的問題:你的應用程序應該如何與外部世界連接?如何管理和控制應用程序的按需伸縮或版本發布?

主站蜘蛛池模板: 册亨县| 涿州市| 汨罗市| 屯留县| 舞钢市| 武穴市| 唐海县| 正蓝旗| 浦江县| 星子县| 灵宝市| 温州市| 玉山县| 南阳市| 遂昌县| 河西区| 江达县| 洞口县| 聊城市| 庆元县| 五家渠市| 喀喇沁旗| 武隆县| 四川省| 馆陶县| 阳东县| 盐池县| 赤壁市| 武定县| 栾川县| 镇巴县| 临沂市| 隆尧县| 江都市| 巴中市| 山丹县| 白城市| 罗山县| 普兰县| 镇安县| 太白县|