Categories
程式開發

Gremlin 發布原生 Kubernetes 混沌測試功能


混沌工程平台 Gremlin 發布了原生 Kubernetes 支持,可用於識別、定位和測驗 Kubernetes 對象,以便主動識別服務弱點。由於自動發現可以跨主機編排容器,所以它可以在 Kubernetes 基礎設施上運行實驗。

Gremlin 是一個平台服務,它可以為 Kubernetes、雲環境、裸機和無服務器(Serverless )提供混沌實驗。混沌工程是一種研究複雜系統在壓力下是如何運行的測試方法,其目標是在故障發生之前就能識別出故障。 Gremlin 提供了一個攻擊框架,可將故障注入到系統中,例如限制關鍵資源或模擬不可靠的網絡。攻擊可以按場景分組,且這些場景可運行並記錄攻擊的結果。

Gremlin 的原生 Kubernetes 支持通過 Gremlin 用戶界面或 API 提供對 Kubernetes 對象的測試。在此版本之前,要對 Kubernetes 中的服務進行 Gremlin 攻擊,需要定位該服務的容器。由於 Kubernetes 對容器編排進行了抽象,並定期銷毀和創建容器,因此嘗試定位特定服務的容器可能會比較困難。現在 Gremlin 允許在服務級別而不是容器級別對指定的 Kubernetes 應用程序進行混沌測試。 Gremlin 首席技術官(CTO)兼聯合創始人 Matthew Fornaciari 表示:

我們的目標是為正在構建和部署現代應用程序的SRE(Site Reliability Engineer ,網站可靠性工程師)和DevOps 團隊提供必要的工具和流程,以幫助他們在故障影響客戶和業務之前,就可以了解系統是如何處理故障的。

Gremlin 的 Kubernetes 測試框架自動化了識別並定位 Kubernetes 原語(例如,node和Pod)的過程。配置了網絡攻擊的用戶還可以控制他們想要中斷的 Kubernetes 服務流量。

要啟用 Kubernetes 測試,用戶必須首先通過 helm chart 升級他們的 Gremlin 客戶端。 Gremlin 客戶端升級後,就可以通過 UI 創建攻擊,在 UI 中可以使用一個新的 Kubernetes 選項。提供了 Kubernetes 集群和命名空間的列表,可用於過濾要測試的 Kubernetes 對象。這些對象按Deployment、DaemonSet、ReplicaSet、StatefulSet 和 Pod 進行細分,可以精確定位混沌實驗的目標。選擇對像後,Gremlin 將提供集群地圖,並會突出顯示受該實驗影響的區域。

Gremlin 發布原生 Kubernetes 混沌測試功能 1

來自 Gremlin 博客 Gremlin 攻擊用戶界面

定義好實驗後,Gremlin 將定位底層容器。測試運行時,受影響的容器將會體現在測試結果報告中,並按其所屬的 Kubernetes 對象分組。容器的詳細信息和日誌也會作為實驗結果的一部分被提供。

隨著 Netflix 的混沌猴子(Chaos Monkey)的出現, 混沌工程開始流行起來。混沌猴子通過隨機終止線上的實例來測試服務是如何處理故障的。kube-monkey,一個社區驅動的 Kubernetes 實現工具,同樣可以刪除集群中的 Kubernetes pod。開源工具 Litmus 提供了一個比 Gremlin 框架更容易配置的測試套件。 Litmus 允許用戶在 Kubernetes 環境中運行測試套件、捕獲日誌、生成報告及執行混沌測試。 Litmus 還可以作為端到端測試方法的一部分添加到 CI/CD 管道中。

Gremlin 與 Kubernetes 的集成可用於免費版和專業版用戶。在某個場景中定位 Kubernetes 還不可用。有關在 Gremlin 中使用 Kubernetes 的更多信息,請查看 Gremlin 文檔

原文鏈接:

Gremlin Releases Native Kubernetes Chaos Testing