本文已超過一年。較舊的文章可能包含過時的內容。請檢查頁面中的資訊自發布以來是否已變得不正確。

KWOK 介紹:不使用 Kubelet 的 Kubernetes

KWOK logo

您是否曾經想過如何在幾秒鐘內建立一個包含數千個節點的叢集,如何以低資源佔用量模擬真實節點,以及如何在不花費大量基礎架構的情況下大規模測試您的 Kubernetes 控制器?

如果您對以上任何一個問題回答「是」,那麼您可能會對 KWOK 這個工具包感興趣,它使您能夠在幾秒鐘內建立一個包含數千個節點的叢集。

什麼是 KWOK?

KWOK 代表 Kubernetes WithOut Kubelet。到目前為止,它提供了兩個工具

kwok
kwok 是這個專案的基石,負責模擬虛擬節點、Pod 和其他 Kubernetes API 資源的生命週期。
kwokctl
kwokctl 是一個 CLI 工具,旨在簡化叢集的建立和管理,節點由 kwok 模擬。

為何使用 KWOK?

KWOK 有幾個優點

  • 速度:您可以幾乎立即建立和刪除叢集和節點,無需等待啟動或佈建。
  • 相容性:KWOK 適用於任何符合 Kubernetes API 的工具或客戶端,例如 kubectl、helm、kui 等。
  • 可移植性:KWOK 沒有特定的硬體或軟體要求。您可以使用預先構建的映像檔運行它,前提是已安裝 Docker 或 Nerdctl。或者,二進制檔案也適用於所有平台,並且可以輕鬆安裝。
  • 靈活性:您可以配置不同的節點類型、標籤、污點、容量、條件等,並且可以配置不同的 Pod 行為、狀態等,以測試不同的場景和邊緣案例。
  • 效能:您可以在筆記型電腦上模擬數千個節點,而不會顯著消耗 CPU 或記憶體資源。

用例是什麼?

KWOK 可用於各種目的

  • 學習:您可以使用 KWOK 學習 Kubernetes 概念和功能,而無需擔心資源浪費或其他後果。
  • 開發:您可以使用 KWOK 開發 Kubernetes 的新功能或工具,而無需存取真實叢集或需要其他組件。
  • 測試:
    • 您可以衡量您的應用程式或控制器在不同數量的節點和(或)Pod 下的擴展性。
    • 您可以透過建立許多具有不同資源請求或限制的 Pod 或服務,在您的叢集上產生高負載。
    • 您可以透過更改節點條件或隨機刪除節點來模擬節點故障或網路分割。
    • 您可以透過啟用不同的功能閘道或 API 版本來測試您的控制器如何與 Kubernetes 的其他組件或功能互動。

限制是什麼?

KWOK 並不旨在完全取代其他工具。它有一些您應該注意的限制

  • 功能:KWOK 不是 kubelet,並且在 Pod 生命周期管理、卷掛載和裝置外掛程式等領域可能表現出不同的行為。其主要功能是模擬節點和 Pod 狀態的更新。
  • 準確性:重要的是要注意,KWOK 並不能準確反映真實節點在各種工作負載或環境下的效能或行為。相反,它使用簡單的公式來近似某些行為。
  • 安全性:KWOK 不會在模擬節點上強制執行任何安全策略或機制。它假設來自 kube-apiserver 的所有請求都已授權且有效。

開始使用

如果您有興趣試用 KWOK,請查看其文件以獲取更多詳細資訊。

Animation of a terminal showing kwokctl in use

使用 kwokctl 管理模擬叢集

參與其中

如果您有興趣參與未來與 KWOK 相關的討論或開發,可以透過以下幾種方式參與

我們歡迎任何想要加入我們這個令人興奮的專案的人提供回饋和貢獻。