如何構建以應用爲中心的“Kubernetes”?

在上篇文章《上 Kubernetes 到底有什麼業務價值?》,主要和大家介紹了上 Kubernetes 有什麼業務價值,以及什麼是“以應用爲中心”的 Kubernetes。本文將跟大傢俱體分享如何構建“以應用爲中心”的 Kubernetes。

如何構建“以應用爲中心”的 Kubernetes?

構建這麼一個以用戶爲中心的 Kubernetes,需要做幾個層級的事情。

1. 應用層驅動

首先來看最核心的部分,上圖中藍色部分,也就是 Kubernetes。可以在 Kubernetes 之上定義一組 CRD 和 Controller。可以在 CRD 來做用戶這一側的 API,比如說 pipeline 就是一個 API,應用也是一個 API。像運維側的擴容策略這些都是可以通過 CRD 的方式安裝起來。

2. 應用層抽象

所以我們的需要解決第一個問題是應用抽象。如果在 Kubernetes 去做應用層抽象,就等同於定義 CRD 和 Controller,所以 Controller 可以叫做應用層的抽象。本身可以是社區裏的,比如 Tekton,istio 這些,可以作爲你的應用驅動層。這是第一個問題,解決的是抽象的問題。不是特別難。

3. 插件能力管理

很多功能不是 K8s 提供的,內置的 Controller 還是有限的,大部分能力來自於社區或者是自己開發的 Controller。這時我的集羣裏面就會安裝好多好多插件。如果要構建以應用爲中心的 Kubernetes,那我必須能夠管理起來這些能力,否則整個集羣就會脫管了。用戶想要這麼一個能力,我需要告訴他有或者是沒有。需要暴露出一個 API 來告訴他,集羣是否有他需要的能力。假設需要 istio 的流量切分,需要有個接口告訴用戶這個能力存不存在。不能指望用戶去 get 一下 crd 合不合適,檢查 Controller 是否運行。這不叫以應用爲中心的 K8s,這叫裸 K8s。

原文鏈接:【https://www.infoq.cn/article/PHGbohj73SDPIH3roPTy】。未經作者許可,禁止轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章