我們正在規劃新的 Kubernetes 叢集基礎設施,我有一些問題。目前,我們有一個更大的集群,其中有環境(開發、暫存、生產)和多個團隊正在處理。一開始,這只是一個“POC”,一個演示 - 但大家知道:沒有什麼比臨時解決方案更持久。在這個設定中,我們遇到了一些一般性問題,在我們的目標架構上,我們計劃修復其中一些主題。
我希望你們中的一些人可以分享知識/經驗。
首先:每個應用程式一個叢集並不是解決方案。應用程式非常小,每個團隊大約有 3-5 個應用程序,每個環境的所有節點需要大約 6-20GB 的 RAM。因此,單一集群實際上並不是一個選擇。
我們為每個環境規劃一個叢集:dev、staging (qa)、prod,也許還有一個用於操作的演示叢集。一切都將是自動化的,並且使用 terraform + ansible (kubespray) 進行 IaC。每個團隊/應用程式範圍都會獲得一個名稱空間 - 當然。
我們的問題/問題:
監控 通常我們使用 Prometheus 和 Grafana 來監控 pod/叢集資源使用量。新的還應該包含中央日誌記錄(我們現在正在嘗試解決方案)。這對於基礎設施團隊來說很好,但基礎設施不想在應用程式層級進行監控。
有沒有任何工作方法可以為應用程式團隊提供監控?例如:您(應用程式團隊)可以根據需要設定有關日誌、CPU、RAM 使用情況的警報。 「你只需要推出這個舵圖」。在一個偉大的世界中,我會為每個團隊(因此每個名稱空間)提供自己的監控堆疊,因此我們也能夠限制儲存和ram+cpu 使用,並且每個團隊都能夠使用「有序」資源(因此,如果團隊有很多日誌/監控需求,需要「訂購」更多資源」)。同樣基於這種方法,他們可以選擇最適合的軟體。
另一個解決方案可能是基礎設施團隊設定中央監控/日誌解決方案並限制存取。應用程式團隊 A 不應該能夠從應用程式團隊 B 存取日誌/CPU 使用情況/RAM 使用情況/磁碟使用情況。
基礎設施團隊可以選擇安裝該堆疊 - 但我看到的一切是:當我在特定命名空間上安裝監視堆疊時,該堆疊需要對叢集的管理員存取權限。我認為這不太好。
我錯了嗎?
貯存 我們有一個 gluster 儲存並希望保留它。如果團隊需要磁碟,我們會新增一個具有特定大小和 storageClassName(如「team1-disk5」)的「glusterfs 持久性磁碟區」。基於此,團隊可以建立 PVC 並使用儲存。過去工作得很好。
這是一個好的解決方案嗎?還有其他想法嗎?
我想目前就這些了。就這兩個問題。有什麼想法可以讓我朝著正確的方向前進嗎?
謝謝!