成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Kubernetes 的核心是 API 框架而非容器

云計算
本文將要說明,容器并非 Kubernetes 最重要、最有價值的地方,Kubernetes 也并非僅僅是一個更廣泛意義上的 Workload 調度器。

時間回到 2013 年。當一條簡單的 docker run postgre 命令就能運行起 Postgre 這樣復雜的傳統服務時,開發者在震驚之余猶如受到天啟;以 Docker 為代表的實用容器技術的橫空出世,也預示著一扇通往敏捷基礎設施的大門即將打開。此后,一切都在往好的方向迅速發展:

  • 越來越多的開發者開始采用容器作為一種標準構建和運行方式。
  • 業界也意識到,很容易將這種封裝方式引入計算集群,通過 Kubernetes 或 Mesos 這樣的編排器來調度計算任務 —— 自此,容器便成為這些調度器最重要的 Workload 類型。

但本文將要說明,容器并非 Kubernetes 最重要、最有價值的地方,Kubernetes 也并非僅僅是一個更廣泛意義上的 Workload 調度器 —— 高效地調度不同類型的 Workload 只是 Kubernetes 提供的一種重要價值,但并不是它成功的原因。

API 才是核心

“等等 —— Kubernetes 只是一堆 API?”

“不好意思,一直都是!”

Kubernetes 的成功和價值在于,提供了一種標準的編程接口(API),可以用來編寫和使用軟件定義的基礎設施服務(本文所說的“基礎設施”,范圍要大于 IaaS):

  • Specification + Implementation 構成一個完整的 API 框架 —— 用于設計、實現和使用各種類型和規模的基礎設施服務;
  • 這些 API 都基于相同的核心結構和語義:typed resources watched and reconciled by controllers (資源按類型劃分,控制器監聽相應類型的資源,并將其實際 status 校準到 spec 里期望的狀態)。

為了進一步解釋這一點,考慮下 Kubernetes 出現之前的場景。

Kubernetes 之前:各自造輪子,封裝廠商 API 差異

Kubernetes 之前,基礎設施基本上是各種不同 API、格式和語義的“云”服務組成的大雜燴:

  • 云廠商只提供了計算實例、塊存儲、虛擬網絡和對象存儲等基礎構建模塊,開發者需要像拼圖一樣將它們拼出一個相對完整的基礎設施方案;
  • 對于其他云廠商,重復過程 1,因為各家的 API、結構和語義并不相同,甚至差異很大。

雖然 Terraform 等工具的出現,提供了一種跨廠商的通用格式,但原始的結構和語義仍然是五花八門的,—— 針對 AWS 編寫的 Terraform descriptor 是無法用到 Azure 的。

Kubernetes 面世:標準化、跨廠商的 API、結構和語義

現在再來看 Kubernetes 從一開始就提供的東西:描述各種資源需求的標準 API。例如:

  • 描述 Pod、Container 等計算需求的 API;
  • 描述 Service、Ingress 等虛擬網絡功能的 API;
  • 描述 Volumes 之類的持久存儲的 API;
  • 甚至還包括 Service Account 之類的服務身份的 API 等等。

這些 API 是跨公有云/私有云和各家云廠商的,各云廠商會將 Kubernetes 結構和語義對接到它們各自的原生 API。因此我們可以說,Kubernetes 提供了一種管理軟件定義基礎設施(也就是云)的標準接口。或者說,Kubernetes 是一個針對云服務(Cloud Services)的標準 API 框架。

Kubernetes API 擴展:CRD

提供一套跨廠商的標準結構和語義來聲明核心基礎設施(Pod/Service/Volume/ServiceAccount/……), 是 Kubernetes 成功的基礎。在此基礎上,它又通過 CRD(Custom Resource Definition), 將這個結構擴展到任何/所有基礎設施資源。

CRD 在 1.7 引入,允許云廠商和開發者自己的服務復用 Kubernetes 的 spec/impl 編程框架。

有了 CRD,用戶不僅能聲明 Kubernetes API 預定義的計算、存儲、網絡服務,還能聲明數據庫、task runner、消息總線、數字證書……任何云廠商能想到的東西!

Operator Framework 以及 SIG API Machinery 等項目的出現,提供了方便地創建和管理這些 CRD 的工具,最小化用戶工作量,最大程度實現標準化。

例如,Crossplane 之類的項目,將廠商資源 RDS 數據庫、SQS queue 資源映射到 Kubernetes API,就像核心 Kubernetes controller 一樣用自己的 controller 來管理網卡、磁盤等自定義資源。Google、RedHat 等 Kubernetes 發行商也在它們的基礎 Kubernetes 發行版中包含越來越多的自定義資源類型。

小結

我們說 Kubernetes 的核心是其 API 框架,但并不是說這套 API 框架就是完美的。事實上,后一點并不(非常)重要,因為 Kubernetes 模型已經成為一個事實標準:開發者理解它、大量工具主動與它對接、主流廠商也都已經原生支持它。用戶認可度、互操作性 經常比其他方面更能決定一個產品能否成功。

隨著 Kubernetes 資源模型越來越廣泛的傳播,現在已經能夠 用一組 Kubernetes 資源來描述一整個軟件定義計算環境。就像用 docker run 可以啟動單個程序一樣,用 kubectl apply -f 就能部署和運行一個分布式應用, 而無需關心是在私有云還是公有云以及具體哪家云廠商上,Kubernetes 的 API 框架已經屏蔽了這些細節。

因此,Kubernetes 并不是關于容器的,而是關于 API。

責任編輯:趙寧寧 來源: IT168網站
相關推薦

2019-01-03 11:18:43

Kubernetes虛擬機容器

2017-07-13 09:14:23

容器服務

2024-01-30 07:55:03

KubernetesAPI服務器

2020-08-13 17:18:20

Kubernetes邊緣容器

2018-12-14 08:00:00

2020-07-28 10:32:56

云計算容器Kubernetes

2023-09-21 07:24:52

2013-01-05 17:01:57

大數據App基礎架構

2013-01-06 10:18:58

大數據大數據的未來

2023-10-10 07:33:30

Kubernetes容器

2022-06-07 16:17:45

KubernetesAPI Schema

2023-03-06 00:24:05

Kubernetes項目開源

2013-10-31 11:19:19

戴爾服務電子商務轉型

2016-08-12 15:59:13

Kubernetes華為

2021-02-19 08:38:36

Kubernetes容器化分布式

2009-09-28 11:30:53

Hibernate核心

2022-07-01 17:57:45

KubernetesAPI

2022-06-21 08:12:17

K8sAPI對象Kubernetes

2011-09-20 19:47:48

2011-12-21 09:19:32

API
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人伊成久久人综合网站 | 国产一区精品在线 | 日韩爱爱网站 | 丁香综合| 国产精品久久久久aaaa九色 | 亚洲三区在线观看 | 欧美理论片在线 | 国产超碰人人爽人人做人人爱 | 精品美女久久久 | 免费黄色大片 | 久热国产在线 | 黄色大片毛片 | 国产 欧美 日韩 一区 | 午夜免费视频 | 中文字幕亚洲一区二区三区 | 免费在线观看一区二区 | 嫩草懂你的影院入口 | 谁有毛片| 在线看av网址 | 天天综合天天 | 亚洲精品2区 | 亚洲欧美日韩中文在线 | 亚洲一区二区免费视频 | 国产一区二区自拍 | 国产精品久久久久久久久久久久冷 | 国产在线一级片 | 亚洲精品视频免费看 | 欧美激情99 | 亚洲欧美日本国产 | 99久久精品国产一区二区三区 | 人人干人人干人人干 | 久久精品亚洲 | 91在线播| 久久精品网 | 成人午夜影院 | 欧美一区二区大片 | www.青青草 | 一区二区三区视频在线 | 成人免费视频网站在线看 | 久久久久电影 | 午夜在线小视频 |