- OpenShift開發指南(原書第2版)
- (美)約書亞·伍德等
- 768字
- 2023-07-24 18:12:08
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,但同時這也帶來了一組新的問題:你的應用程序應該如何與外部世界連接?如何管理和控制應用程序的按需伸縮或版本發布?
- PHP動態網站程序設計
- ASP.NET動態網頁設計教程(第三版)
- Neo4j Essentials
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- Data Analysis with Stata
- PHP 7+MySQL 8動態網站開發從入門到精通(視頻教學版)
- Building RESTful Python Web Services
- Go語言精進之路:從新手到高手的編程思想、方法和技巧(1)
- HTML5秘籍(第2版)
- Internet of Things with ESP8266
- Java程序員面試筆試寶典(第2版)
- JavaScript腳本特效編程給力起飛
- 深入實踐Kotlin元編程
- Application Development with Parse using iOS SDK
- Tableau Dashboard Cookbook