本文發表於一年多前。舊文章可能包含過時內容。請檢查頁面中的資訊自發布以來是否已變得不正確。
介紹 KWOK:Kubernetes WithOut Kubelet
你是否曾想過如何在幾秒鐘內搭建一個包含數千個節點的叢集,如何以低資源佔用模擬真實節點,以及如何在不花費大量基礎設施成本的情況下大規模測試你的 Kubernetes 控制器?
如果你對以上任何一個問題的回答是“是”,那麼你可能會對 KWOK 感興趣,這是一個能讓你在幾秒鐘內建立一個包含數千個節點的叢集的工具包。
什麼是 KWOK?
KWOK 是 Kubernetes WithOut Kubelet 的縮寫。到目前為止,它提供了兩種工具:
kwok
kwok
是這個專案的基石,負責模擬假節點、Pod 和其他 Kubernetes API 資源的生命週期。kwokctl
kwokctl
是一個命令列工具,旨在簡化由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,請檢視其文件以獲取更多詳細資訊。
使用 kwokctl 管理模擬叢集
參與其中
如果你有興趣參與未來與 KWOK 相關的討論或開發,有幾種方式可以參與進來:
- Slack:#kwok 用於一般使用討論,#kwok-dev 用於開發討論。(訪問 slack.k8s.io 獲取工作區邀請)
- 在 sigs.k8s.io/kwok 中提交 Issue/PR/Discussion
我們歡迎任何想要加入我們這個激動人心的專案的人提供反饋和貢獻。