v0.2 版本發佈

發佈於:2021-10-06

改進的插拔性、自動調整規模、穩定性和效能

公告 Knative v0.2 版本發佈

改進的插拔性、自動調整規模、穩定性和效能

我們很高興宣佈發佈 Knative 的新版本,這是在 Kubernetes 上建構現代應用程式的一組中介軟體元件。Knative 的 0.2 版本是自 7 月專案啟動以來的第一個重大更新。它代表整個 Knative 社群數月來的辛勤工作,以解決我們從越來越多的 Knative 部署中獲得的經驗。

0.2 版本最令人興奮的部分是加入了事件。Eventing 元件補充了 Knative 已經定義的其他兩個基礎區塊:Serving 和 Build。我們期待社群將使用這項新功能開發的新型事件和創新解決方案。

Serving 在「幕後」進行了重大改進,將 Knative 的關鍵領域封裝到具有新內部 API 的子系統中,以支援可插拔網路、自動調整規模和快取。

完整的版本說明可在 Knative ServingBuildEventing 儲存庫中找到。以下是一些重點

新的事件資源模型 
事件儲存庫對資源模型進行了重大修改,導致來源遷移到自訂資源定義 (CRD)。現在,事件包括標準 Kubernetes 概念的複雜使用,從而產生更好的驗證、更簡潔的介面和 RBAC 支援。新的架構使用以通道和訂閱為中心的更簡單物件模型。

更鬆散的耦合
我們在 v0.1 上收到的正面意見回饋之一是定義 Knative 建構區塊的「品味」。在 v0.2 中,Knative 更進一步傾向於此,以使營運商能夠獨立安裝 Build、Serving 和 Eventing 元件。在 Knative 元件之間實現這些鬆散耦合的合約,也將隨著時間的推移實現第三方整合,例如將非 Knative Build 與 Serving 一起使用,或將事件傳遞到非 Serving 部署。我們很高興看到社群朝哪個方向發展。

可插拔子系統
我們也收到了許多關於想要自訂 Knative 的意見回饋。目標始終是支援某種程度的插拔性,因此 v0.2 中的自訂功能得到了顯著改進。我們在 v0.2 中引入了 3 個新的內部 API,以將我們的核心資源模型與實現它們的子系統分開:網路、自動調整規模和快取。網路使開發人員能夠使用替代的輸入實作來取代我們的 Istio 相依性。自動調整規模使開發人員能夠使用他們自己的設計來取代我們的「便宜又令人愉快的」自動調整器。快取使開發人員能夠採用映像快取策略,在整個叢集中預先載入容器映像(未捆綁任何實作,因此這是一個純粹的擴充點)。

改進的冷啟動
冷啟動效能的兩個主要因素是側車注入和映像提取延遲。在其 1.0.2 版本中,Istio 在減少 Envoy 程式設計時間方面取得了進展。此外,我們還允許在停用側車注入的情況下安裝 Knative。為了使人們能夠對抗映像提取延遲,我們公開了一個名為「映像」資源(屬於 knative/caching)的新擴充點,其中包含控制器在整個叢集中預先載入使用者映像所需的所有資訊。快取是我們也很高興看到社群以此為基礎建構的另一個功能。

自動調整規模
我們已將先前的每個 Revision 自動調整器替換為單一的共用自動調整器。新的自動調整器基於與先前自動調整器相同的邏輯,但已發展為純粹由指標驅動(包括 0->1->0),從而消除了不必要的 Revision servingState 欄位。我們已將 ConcurrencyModel(單一或多重)替換為整數 ContainerConcurrency 欄位。這允許將某些用例(例如,有限的執行緒集區)的並行性限制為 1 以外的值。

Build
Knative Build 新增了許多增量改進,包括新的 ClusterBuildTemplate 資源。現在,營運商可以一次安裝一組 BuildTemplate,而不是每個命名空間一次。Build 範本參數現在也可以應用於建置步驟映像名稱。Build 規格的新功能允許使用者指定建置範圍的逾時、節點選取器和親和性。最後但並非最不重要的一點是,建置狀態已擴充為報告每個步驟的建置進度和建置擱置時間。

Knative 在 KubeCon

來和我們談談!即將在上海和西雅圖舉行的 KubeCon 會議都有許多 Knative 會議。

上海

西雅圖

我們使用分析和 Cookie 來了解網站流量。關於您使用我們網站的資訊會與 Google 分享以用於該目的。瞭解更多。