引入 Polaris 以保持 Kubernetes 集群健康

筆記。 翻譯。:本文的原文由 ReactiveOps 的首席 SRE 工程師 Rob Scott 撰寫,該工程師是宣布專案的開發背後。 對部署到 Kubernetes 的內容進行集中驗證的想法與我們非常接近,因此我們饒有興趣地關注此類舉措。

引入 Polaris 以保持 Kubernetes 集群健康

很高興介紹 Polaris 是一個開源項目,有助於維護 Kubernetes 叢集的健康。 我們建立 Polaris 來自動化 ReactiveOps 中使用的一些最佳實踐,以保持叢集在大量客戶中安全可靠地運作。 是時候開源程式碼了。

我們一次又一次地看到看似微小的配置錯誤會導致嚴重問題,讓工程師徹夜難眠。 很簡單的東西——例如由於健忘而忘記的資源請求的配置 (資源請求) - 可能會破壞自動擴展,甚至導致工作負載沒有資源。 如果先前配置中的小錯誤導致生產中斷,現在 Polaris 可以讓您完全避免這些錯誤。

Polaris 可協助您避免影響應用程式穩定性、可靠性、可擴充性和安全性的配置問題。 它可以輕鬆識別部署配置中的缺陷並防止將來出現問題。 有了 Polaris,您就可以放心了,因為您知道您的應用程式是使用一組經過充分測試的標準來部署的。

Polaris 由兩個關鍵組件組成:

  1. 監控面板,提供有關叢集中現有部署的配置情況的資訊;
  2. 一個實驗性測試 Webhook,可防止推出不符合可接受標準的部署。

北極星儀表板

建立 Polaris 儀表板的目的是提供一種簡單直觀的方式來查看 Kubernetes 部署的當前狀態並取得改進建議。 它提供了集群的完整概述,並按類別、命名空間和部署對結果進行了細分。

引入 Polaris 以保持 Kubernetes 集群健康

Polaris 的預設標準相當高,因此如果您的分數低於您的預期,請不要感到驚訝。 Polaris 的主要目標是設定高標準並爭取出色的預設配置。 如果建議的配置看起來太嚴格,可以在部署配置過程中修正,針對特定工作負載進行最佳化。

作為 Polaris 出版物的一部分,我們決定不僅展示工具本身,而且還詳細描述其中包含的測試。 每條評論都包含相關文件的鏈接,這解釋了為什麼我們認為它很重要,並提供了有關該主題的其他資源的鏈接。

北極星 Webhook

如果儀表板有助於了解目前部署配置的概述,則 Webhook 可確保將部署到叢集的所有部署符合標準。

一旦儀表板識別的問題得到修正,您可以使用 Webhook 來確保設定永遠不會再次低於既定標準。 Webhook 不允許在其配置包含重大偏差(「錯誤」等級)的叢集中進行部署。

這款 Webhook 的潛力令人興奮,但仍需要進行大量測試才能被視為生產就緒。 目前,這是一項實驗性功能,也是全新開源專案的一部分。 由於它可能會幹擾部署更新,因此請謹慎使用。

入門

我希望您仍在閱讀本公告,Polaris 是一個可能對您有用的工具。 想親自嘗試儀表板嗎? 在叢集中部署面板非常容易。 它以最低權限(唯讀)安裝,所有資料都保留在內部。 若要使用 kubectl 部署儀表板,請執行:

kubectl apply -f https://raw.githubusercontent.com/reactiveops/polaris/master/deploy/dashboard.yaml

現在您需要設定連接埠轉送以透過本機連接埠 8080 存取儀表板:

kubectl port-forward --namespace polaris svc/polaris-dashboard 8080:80

當然,還有許多其他方法可以使用和部署 Polaris,包括使用 Helm。 您可以了解這一點以及更多信息 GitHub 上的 Polaris 儲存庫.

這僅僅是開始

我們對 Polaris 迄今為止所構建的東西感到興奮,但故事並沒有結束。 我們希望添加許多新的測試來擴展功能。 我們也正在尋找更好的方法來在命名空間或資源層級實現異常檢查規則。 如果您想了解有關我們計劃的更多信息,請查看 路線圖.

如果您覺得 Polaris 可能有用,請花點時間嘗試一下。 我們很樂意接受任何想法、回饋、問題或拉取請求。 您可以透過以下方式聯絡我們 項目網站GitHub上Twitter.

譯者PS

另請閱讀我們的博客:

來源: www.habr.com

添加評論