3 種擴充套件 Kubernetes 能力的方式

Paul Brown發表於2018-03-27

Google 的工程總監 Chen Goldberg 在最近的奧斯汀 KubeCon 和 CloudNativeCon上說,Kubernetes 的擴充套件能力是它的秘密武器。

在建立幫助工程師提高工作效率的工具的競賽中,Goldberg 談到他曾經領導過一個開發這樣一個平臺的團隊。儘管平臺最初有用,但它無法擴充套件,並且修改也很困難。

幸運的是,Goldberg 說,Kubernetes 沒有這些問題。首先,Kubernetes 是一個自我修復系統,因為它使用的控制器實現了“協調環Reconciliation Loop”。在協調環中,控制器觀察系統的當前狀態並將其與所需狀態進行比較。一旦它確定了這兩個狀態之間的差異,它就會努力實現所需的狀態。這使得 Kubernetes 非常適合動態環境。

3 種擴充套件 Kubernetes 的方式

Goldberg 然後解釋說,要建立控制器,你需要資源,也就是說,你需要擴充套件 Kubernetes。有三種方法可以做到這一點,從最靈活(但也更困難)到最簡單的依次是:使用 Kube 聚合器、使用 API​​ 伺服器構建器或建立自定義資源定義Custom Resource Definition(CRD)。

後者甚至可以使用極少的程式碼來擴充套件 Kubernetes 的功能。為了演示它是如何完成的,Goggle 軟體工程師 Anthony Yeh 上臺展示了為 Kubernetes 新增一個狀態集。 (狀態集物件用於管理有狀態應用,即需要儲存應用狀態的程式,跟蹤例如使用者身份及其個人設定。)使用 catset,在一個 100 行 JavaScript 的檔案中實現的 CRD,Yeh 展示瞭如何將狀態集新增到 Kubernetes 部署中。之前的擴充套件不是 CRD,需要 24 個檔案和 3000 多行程式碼。

為解決 CRD 可靠性問題,Goldberg 表示,Kubernetes 已經啟動了一項認證計劃,允許公司在 Kubernetes 社群註冊和認證其擴充套件。在一個月內,已有 30 多家公司報名參加該計劃。

Goldberg 繼續解釋 Kubernetes 的可擴充套件性如何成為今年 KubeCon 的熱門話題,以及 Google 和 IBM 如何構建一個使用 CRD 管理和保護微服務的平臺。或者一些開發人員如何將機器學習帶入 Kubernetes,另外展示開放服務代理以及在混合設定上的服務消費。

Goldberg 總結說,可擴充套件性是種增能。而且,Kubernetes 的可擴充套件性使其成為開發者的通用平臺,並且易於使用,這使得他們可以執行任何應用程式。

你可以在下面觀看整個影片:


via: https://www.linux.com/blog/event/kubecon/2018/2/3-ways-extend-power-kubernetes

作者:PAUL BROWN 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章