安裝 SaltStack Config 所需的系統架構取決於兩個主要因素:1) 用於部署 SaltStack Config 的安裝方法,以及 2) 環境的輸送量,是指將使用 SaltStack Config 對系統執行的工作量。
開始之前
若要準確評估系統架構需求,應首先確保熟悉以下內容:
- 適用於 SaltStack Config 的兩種安裝方法
- SaltStack Config SaltStack 架構的四個基本元件 (RaaS、Salt 主節點、PostgreSQL 和 Redis)
如需這些概念的概觀 (包括安裝程序的一般概觀),請參閱安裝和設定 SaltStack Config。另請參閱應使用哪種安裝案例?,以取得有關選取安裝案例的指引。
SaltStack Config 由 Salt 提供支援,Salt 是一個開放原始碼自動化和組態管理引擎。如果您不太熟悉 Salt 中使用的關鍵詞彙 (例如 Salt 主節點和 Salt 部屬節點),請參閱〈Salt 系統架構〉以取得詳細資訊。
確定部屬節點架構
在 SaltStack Config 環境中,部屬節點通常是指生產環境中透過一或多個 Salt 主節點與 SaltStack Config 連線並由其管理的節點。
Salt 旨在與可能在部屬節點上執行的任何作業系統搭配使用。除了標準作業系統 (Linux、Windows、MacOS) 之外,Salt 還針對各種網路裝置特有的作業系統 (例如 Arista、Juniper、AIX 和 Solaris) 提供了專用部屬節點軟體 (通常稱為「原生部屬節點」)。
下表依作業系統列出了 Salt 部屬節點服務的最低記憶體需求:
作業系統 | 最低記憶體需求 |
---|---|
AIX 部屬節點 | 512 MB RAM |
MacOS 部屬節點 | 4 GB RAM |
Linux 部屬節點 | 512 MB RAM |
Windows 部屬節點 | 4 GB RAM |
其他網路裝置,包括 Proxy 部屬節點 | 每個受控裝置 40 MB RAM |
確定安裝案例
有關選取安裝案例的指引,請參閱應使用哪種安裝案例?。如果您不確定哪一種安裝方法最適合您的系統,建議使用標準安裝。對於節點數量超過 1,000 個的生產級系統,不建議使用 Lifecycle Manager 安裝方法。
如果選擇 Lifecycle Manager 安裝,則只需要一個節點,並且需要以下系統架構:
硬體 | 最多 1,000 個節點 (部屬節點) |
---|---|
核心 | 8 個 CPU 核心 |
RAM | 16 GB RAM |
磁碟空間 | 至少 40 GB 可用空間 |
本指南的其餘部分將說明標準安裝案例的架構需求。
估計將要管理的 Salt 部屬節點數目
雖然在安裝前難以測量系統的輸送量,但可以根據系統中將由 SaltStack Config 管理的部屬節點 (節點) 數目來估計您的需求。本指南的最後一部分提供了用於確定系統輸送量的其他測量。
隨著更多 Salt 部屬節點由 SaltStack Config 管理,可能需要增加系統架構以與之相符。
估計所需的 Salt 主節點數目
下表列出了根據系統中管理的 Salt 部屬節點 (節點) 數目,可能需要的 Salt 主節點建議數目:
部屬節點 | Salt 主節點 (16 個 CPU/16 GB) |
---|---|
5,000 | 1 |
10,000 | 2 |
15,000 | 3 |
20,000 | 4 |
25,000 | 5 |
30,000 | 6 |
35,000 | 7 |
40,000 | 8 |
45,000 | 9 |
50,000 | 10 |
55,000 | 11 |
60,000 | 12 |
65,000 | 13 |
70,000 | 14 |
75,000 | 15 |
80,000 | 16 |
85,000 | 17 |
90,000 | 18 |
95,000 | 19 |
100,000 | 20 |
本文件說明了 SaltStack Config 內部部署架構。SaltStack Config 雲端目前只能執行一個 Salt 主節點,這表示部屬節點數目限制為少於 20,000 個。
估計所需的 RaaS 節點數目
下表列出了根據系統中管理的 Salt 部屬節點 (節點) 數目,可能需要的 RaaS 節點建議數目:
部屬節點 | RaaS 節點 (16 個 CPU/16 GB) | RaaS 節點 (32 個 CPU/32 GB) |
---|---|---|
5,000 | 1 | |
10,000 | 1 | |
15,000 | 1 | |
20,000 | 1 | |
25,000 | 2 | |
30,000 | 2 | |
35,000 | 2 | |
40,000 | 2 | |
45,000 | 1 | 1 |
50,000 | 1 | 1 |
55,000 | 1 | 1 |
60,000 | 1 | 1 |
65,000 | 2 | |
70,000 | 2 | |
75,000 | 2 | |
80,000 | 2 | |
85,000 | 1 | 2 |
90,000 | 1 | 2 |
95,000 | 1 | 2 |
100,000 | 1 | 2 |
估計所需的 PostgreSQL 節點數目
接下來的兩個資料表列出了根據系統中管理的 Salt 部屬節點 (節點) 數目,可能需要的 PostgreSQL 資料庫節點建議數目:
部屬節點 | PostgreSQL 節點 (8 個 CPU/8 GB) | PostgreSQL 節點 (16 個 CPU/16 GB) | PostgreSQL 節點 (24 個 CPU/24 GB) | PostgreSQL 節點 (32 個 CPU/32 GB) |
---|---|---|---|---|
5,000 | 1 | |||
10,000 | 1 | |||
15,000 | 1 | |||
20,000 | 1 | |||
25,000 | 1 | |||
30,000 | 1 | |||
35,000 | 1 | |||
40,000 | 1 | |||
45,000 | 1 | |||
50,000 | 1 | |||
55,000 | 1 | |||
60,000 | 1 |
部屬節點 | PostgreSQL 節點 (48 個 CPU/48 GB) | PostgreSQL 節點 (56 個 CPU/56 GB) | PostgreSQL 節點 (64 個 CPU/64 GB) |
---|---|---|---|
65,000 | 1 | ||
70,000 | 1 | ||
75,000 | 1 | ||
80,000 | 1 | ||
85,000 | 1 | ||
90,000 | 1 | ||
95,000 | 1 | ||
100,000 | 1 |
估計所需的 Redis 節點數目
接下來的兩個資料表列出了根據系統中管理的 Salt 部屬節點 (節點) 數目,可能需要的 Redis 資料庫節點建議數目:
部屬節點 | Redis 節點 (4 個 CPU/4 GB) | Redis 節點 (8 個 CPU/8 GB) | Redis 節點 (12 個 CPU/12 GB) |
---|---|---|---|
5,000 | 1 | ||
10,000 | 1 | ||
15,000 | 1 | ||
20,000 | 1 | ||
25,000 | 1 | ||
30,000 | 1 | ||
35,000 | 1 | ||
40,000 | 1 | ||
45,000 | 1 | ||
50,000 | 1 | ||
55,000 | 1 | ||
60,000 | 1 |
部屬節點 | Redis 節點 (16 個 CPU/16 GB) | Redis 節點 (20 個 CPU/20 GB) |
---|---|---|
65,000 | 1 | |
70,000 | 1 | |
75,000 | 1 | |
80,000 | 1 | |
85,000 | 1 | |
90,000 | 1 | |
95,000 | 1 | |
100,000 | 1 |
安裝後根據輸送量最佳化架構
完成 SaltStack Config 安裝後,可以使用系統監控度量來更好地確定系統的輸送量和架構需求。
確定要監控的內容時,請考慮以下因素:
- 事件系統上的流量 - 事件系統 (有時亦稱為「事件匯流排」) 用於 Salt 主節點和 Salt 部屬節點的程序間通訊。如果事件匯流排非常忙碌,請考慮增加記憶體配置。
- 每小時工作傳回資料 - SaltStack Config 使用「工作」一詞指代 SaltStack Config 執行的每個命令、工作和作業。每個工作會將其輸出傳送至 SaltStack Config 以供報告和資料收集之用。系統在指定小時內產生的工作傳回資料數會影響您的架構需求。
- pillar 資料量 - pillar 資料是必須儲存在 Salt 主節點上的資料。Pillar 主要用於儲存密碼或其他高度機密資料,例如帳戶認證、密碼編譯金鑰或密碼。對於儲存您不想直接放在狀態檔案中的非密碼資料 (例如組態資料) 來說,pillar 也很有用。儲存在 Salt 主節點上的資料量 (稍後由部屬節點視需要存取) 可能會影響記憶體和資料儲存需求。
- 自訂粒紋數量 - 粒紋在 Salt 中用於確定特定工作或命令的部屬節點目標。粒紋是指每個部屬節點的基本資料和特性。Salt 隨附許多預先建置的粒紋。例如,可以透過部屬節點的作業系統、網域名稱、IP 位址、核心、記憶體和許多其他系統內容來確定部屬節點目標。此外,還可以建立自訂 Grain 資料,以根據您在系統中特別針對的目標特性區分不同的部屬節點群組。建立的自訂粒紋數目會影響您的架構需求。
- 指標和反應器數目 - 指標系統是一種監控工具,可以在 Salt 部屬節點上接聽各種系統程序。指標可以觸發反應器,這樣一來,便有助於實作變更或對問題進行疑難排解。例如,如果服務回應逾時,則反應器系統會重新啟動服務。與反應器結合使用時,指標可以建立對基礎結構和應用程式問題的自動預先寫入回應。反應器使用預先寫入修復狀態擴充 Salt,使其能夠自動回應。如果系統中具有定期啟用的指標和反應器,可能會增加您的系統架構需求。
- 磁碟大小需求 - 可能需要根據受管理的部屬節點數目以及每年需要保留在儲存區中的資料數量來增加磁碟大小。例如,如果您有一個高輸送量系統,並且您的系統處於需要 7-8 年資料保留的高度管制的產業,則可能需要更大的磁碟大小和儲存區容量。
- 元件之間的地理位置和距離 - 如果 Salt 主節點與執行 SaltStack Config (RaaS) 的伺服器之間有 65 毫秒或更長的延遲,則可能會遇到問題。幸運的是,Salt 對 Salt 部屬節點和 Salt 主節點之間的延遲較不敏感。放置這些元件時,請記住,最好將主節點放在靠近 RaaS 的位置,將部屬節點放在較遠的位置 (如果需要)。
- 業務關鍵營運 - 評估 SaltStack Config 在環境中的業務關鍵程度時,請詢問自己 SaltStack Config 中斷對您業務的影響有多嚴重。如果關閉一小時或更多,是否會造成嚴重影響?如果會,則可能需要在 SaltStack Config 系統架構中設計高可用性需求。
根據這些因素,請考慮以增量方式增加資源並監控對系統效能的影響。例如,透過 4 個 CPU 將記憶體配置增加 4 GB RAM。
下圖顯示了高可用性 SaltStack Config 架構設計範例:
如此圖所示,許多高可用性系統會連線至多個 Salt 主節點。高可用性系統通常也會在 PostgreSQL 資料庫和 Redis 資料庫中建置備援,以便一個資料庫可以容錯移轉至另一個資料庫。請記住,目前適用於 PostgreSQL 和 Redis 的高可用性解決方案僅支援手動容錯移轉。