歡迎光臨
每天分享高質量文章

3 種擴展 Kubernetes 能力的方式 | Linux 中國

你需要擴展 Kubernetes。有三種方法可以做到這一點,從最靈活(但也更困難)到最簡單的依次是:使用 Kube 聚合器、使用 API 服務器構建器或創建自定義資源定義(CRD)。
— Paul Brown


致謝
編譯自 | https://www.linux.com/blog/event/kubecon/2018/2/3-ways-extend-power-kubernetes 
 作者 | Paul Brown
 譯者 | geekpi ? ? 共計翻譯:682 篇 貢獻時間:1614 天

Google 的工程總監 Chen Goldberg 在最近的奧斯汀 KubeCon 和 CloudNativeCon[1]上說,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 的可擴展性使其成為開發者的通用平臺,並且易於使用,這使得他們可以運行任何應用程式。

你可以在下麵觀看整個視頻: