3 種擴展 Kubernetes 能力的方式
Google 的工程總監 Chen Goldberg 在最近的奧斯汀 KubeCon 和 CloudNativeCon上說,Kubernetes 的擴展能力是它的秘密武器。
在建立幫助工程師提高工作效率的工具的競賽中,Goldberg 談到他曾經領導過一個開發這樣一個平台的團隊。儘管平台最初有用,但它無法擴展,並且修改也很困難。
幸運的是,Goldberg 說,Kubernetes 沒有這些問題。首先,Kubernetes 是一個自我修復系統,因為它使用的控制器實現了「 協調環 」。在協調環中,控制器觀察系統的當前狀態並將其與所需狀態進行比較。一旦它確定了這兩個狀態之間的差異,它就會努力實現所需的狀態。這使得 Kubernetes 非常適合動態環境。
3 種擴展 Kubernetes 的方式
Goldberg 然後解釋說,要建立控制器,你需要資源,也就是說,你需要擴展 Kubernetes。有三種方法可以做到這一點,從最靈活(但也更困難)到最簡單的依次是:使用 Kube 聚合器、使用 API 伺服器構建器或創建 自定義資源定義 (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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive