使 Kubernetes 變得更好的 11 個工具

使 Kubernetes 變得更好的 11 個工具

並非所有服務器平台,即使是最強大,最可擴展的,都可以滿足所有服務的需求。 雖然Kubernetes獨自工作,但它可能缺乏正確的作品。 您總是會發現忽略您需求的特殊情況,或者 Kubernetes 在默認安裝下無法工作,例如數據庫支持或 CD 操作。

這是這個容器編排器的附加組件、擴展和其他好東西出現的地方,並受到最廣泛的社區的支持。 在這篇文章中,我們將介紹 11 件我們發現的最好的事情。 我們自己在 南橋 它們非常有趣,我們計劃以實際的方式處理它們——將它們拆成螺絲和螺母,看看裡面有什麼。 其中一些將完美補充任何 Kubernetes 集群,而另一些將幫助解決典型 Kubernetes 發行版中未實現的特定任務。

看門人:策略管理

項目 開放策略代理 (OPA) 提供了在 Kubernetes 中的雲應用程序堆棧之上創建從入口到服務網格的策略的能力。 看門人 賦予 Kubernetes 在集群上自動執行策略的本機能力,並且還提供對違反策略的任何事件或資源的檢查。 所有這些都是由相對較新的 Kubernetes 機制(Webhooks 准入管理器)處理的,該機制會在資源發生變化時觸發。 借助 Gatekeeper,OPA 策略成為 Kubernetes 集群狀態的另一部分,而無需持續監督。

Gravity:便攜式 Kubernetes 集群

如果您想將應用程序部署到 Kubernetes,許多應用程序都有一個 Helm 圖表來指導和自動化此過程。 但是,如果您想“按原樣”使用 Kubernetes 集群並將其部署到其他地方怎麼辦?

重力 拍攝 Kubernetes 集群、容器映像註冊表以及運行的稱為“應用程序包”的應用程序的快照。 這樣的一個包,就是一個普通的文件 .tar,可以在任何 Kubernetes 可以運行的地方復制集群。

Gravity 還會檢查目標基礎設施的行為是否與源基礎設施相同,以及目標上的 Kubernetes 環境是否可用。 Gravity 的付費版本還添加了安全功能,包括 RBAC 以及跨不同集群部署同步安全設置的能力。

最新的主要版本 Gravity 7 可以將 Gravity 鏡像推送到現有的 Kubernetes 集群中,而不是從鏡像中創建一個全新的集群。 重力7也可以與安裝的簇一起使用,而無需使用重力圖像。 重力還支持Selinux,並與Teleport SSH Gateway一起工作。

Kaniko:在 Kubernetes 集群中構建容器

大多數容器鏡像都是構建在容器堆棧之外的系統上的。 但是,有時您需要在容器堆棧內構建映像,例如在正在運行的容器中或在 Kubernetes 集群中的某個位置。

蟹子 在容器環境中構建容器,但不依賴於容器化服務,例如 Docker。 相反,Kaniko 從基礎映像中提取文件系統,在提取的文件系統之上執行所有用戶空間構建命令,並在每個命令後拍攝文件系統的快照。

注:Kaniko 目前(2020 年 XNUMX 月, 約譯員) 無法構建 Windows 容器。

Kubecost:Kubernetes 啟動成本選項

大多數 Kubernetes 管理工具都側重於易用性、監控、了解 pod 內的行為等。 但是,如何監控與 Kubernetes 啟動相關的成本(以盧布和科比為單位)呢?

庫貝成本 實時處理 Kubernetes 參數,從而獲得主要雲提供商運行的集群的最新成本信息,並顯示在面板中,其中包含每個集群的每月成本。 RAM、CPU 時間、GPU 和磁盤子系統的價格按 Kubernetes 組件(容器、pod、服務等)細分

Kubecost 還跟踪非集群資源(例如 Amazon S3 存儲桶)的成本,儘管這受到 AWS 的限制。 成本數據可以發送到 Prometheus,以便您可以使用它以編程方式更改集群的行為。

如果您有足夠 15 天的日誌數據,Kubecost 可以免費使用。 對於其他功能,監控 199 個節點的起價為每月 50 美元。

KubeDB:在 Kubernetes 中運行戰斗數據庫

數據庫也很難在 Kubernetes 中出色地運行。 您會發現適用於 MySQL、PostgreSQL、MongoDB 和 Redis 的 Kubernetes 運算符,但它們都有缺點。 此外,典型的 Kubernetes 功能集並不能直接解決大多數已定義的數據庫問題。

庫貝數據庫 幫助您創建用於數據庫管理的 Kubernetes 語句。 運行備份、克隆、監控、快照和聲明性數據庫創建是其組成部分。 請注意,功能支持取決於數據庫。 例如,創建集群適用於 PostgreSQL,但不適用於 MySQL(已經 正如正確指出的那樣 dnbstd, 約譯員).

Kube-monkey:Kubernetes 的 Chaos Monkey

最無錯誤的應力測試方法被認為是隨機分解。 這一理論是 Netflix 的 Chaos Monkey 的核心,這是一種混沌工程工具,可以隨機關閉虛擬機和生產環境容器,以“激勵”開發人員構建更具彈性的系統。 庫貝猴 - 對 Kubernetes 集群實施相同的壓力測試基本理論。 它的工作原理是隨機殺死您指定的集群中的模塊,也可以設置為以特定的時間間隔運行。

適用於 AWS 的 Kubernetes 入口控制器

Kubernetes通過稱為的服務提供了外部負載平衡器和集群網絡服務 入口 AWS 提供負載均衡功能,但不會自動將它們與相同的 Kubernetes 功能捆綁在一起。 適用於 AWS 的 Kubernetes 入口控制器 縮小了這一差距。

它自動管理集群中每個入口的 AWS 資源,為新入口資源創建負載均衡器,並在刪除資源時刪除負載均衡器。 它使用 CloudFormation 來確保集群狀態保持一致。 它還支持 CloudWatch 警報設置並自動管理集群中使用的其他元素,例如 SSL 證書和 EC2 Auto Scaling 組。

Kubespray:自動安裝 Kubernetes

庫貝噴霧 自動安裝生產就緒的 Kubernetes 集群,從硬件服務器上的安裝到主要公共雲。 當安裝在硬件服務器上時,它使用 Ansible(Vagrant 可選)啟動部署並使用您選擇的網絡附加組件(如 Flannel、Calico 等)從頭開始創建高可用性集群。

Skaffold:Kubernetes 的迭代開發

斯卡福德 - 用於組織Kubernetes中應用程序CD的Google工具之一。 一旦您對源代碼進行更改,skaffold 就會自動檢測到這一點,開始構建和部署,並在出現任何錯誤時向您發出警告。 Skaffold完全在客戶端運行,因此安裝或更新可能幾乎沒有細微差別。 它可以與現有的 CICD 管道一起使用,也可以與一些外部構建工具(主要是 Google 的 Bazel)交互。

Teresa:Kubernetes 上最簡單的 PaaS

鄧麗君 是一個應用程序部署系統,可在Kubernetes頂部運行一個簡單的PAA。 團隊用戶可以部署和管理自己的應用程序。 對於那些信任此應用程序並且不想處理Kubernetes及其所有復雜性的人來說,這使事情變得更加容易。

傾斜:將容器更新流式傳輸到 Kubernetes 集群

傾斜由 Windmill Engineering 開發,監視不同 Dockerfile 的更改,然後逐步將適當的容器部署到 Kubernetes 集群。 本質上,它允許您只需更新 Dockerfile 即可實時更新生產集群。 Tilt是在集群內部構建的,只需更改源代碼即可。 您還可以直接從 Tilt 拍攝集群狀態快照並捕獲錯誤條件,以便與團隊成員共享以進行調試。

PS 所有這些工具我們都反复在 南橋 用我們好奇的雙手探尋。 已經(希望如此!)在二月份的線下強化課程中展示真實的實踐。 Kubernetes 基地 8 年 10 月 2021 日至 XNUMX 日。以及 Kubernetes Mega 12–14 февраля. 說實話,我們也很懷念線下學習時那種熱烈而充滿活力的氛圍。 無論技術多麼先進,都無法取代人與人之間的現場交流和志同道合的人聚集在一起時的特殊氛圍。

來源: www.habr.com

添加評論