Chuyển đến nội dung chính

第 4 課:準備基礎設施

有關硬體需求、網路/防火牆配置、3 個虛擬機器/伺服器的設定以及 HA 叢集時間同步的詳細說明。

目標____HTMLTAG_1__HTMLTAG_2___完成本課程後,您將:____HTMLTAG_3__HTMLTAG_4__HTMLTAG_5____了解 Patroni 叢集的硬體和軟體需求____HTMLTAG_6__HTMLTAG_7___ML設定和防火牆組的硬體和軟體需求_____1TAG_6__HTMLTAG_7___ML個虛擬機器/伺服器(VirtualBox/VMware/Cloud)___HTMLTAG_10__HTMLTAG_11___設定基於 SSH 金鑰的驗證___HTMLTAG_12__HTMLTAG_13___與 NTP/chrony 同步時間___HTMLTAG_14__HTMLTAG_13___與 NTP/chrony 同步時間___HTMLTAG_14__HTMLTAG_15_____MLG_15__1111615。硬體需求和軟體___HTMLTAG_17__HTMLTAG_18___實驗室架構___HTMLTAG_19__HTMLTAG_20___我們將設定一個由 3個節點組成的叢集:___HTMLTAG_21__HTMLTAG_22__HTMLTAG_23__HTMLTAG_24__HTMLTAG_25___架構實驗室___HTMLTAG_26__HTMLTAG_27______HTMLTAG_28__HTMLTAG_29___硬體需求(依節點)___HTMLTAG_30__HTMLTAG_31__HTMLTAG_32___最低(實驗室/開發):___HTMLTAG_34__HTMLTAG_35__HTMLTAG_36__HTMLTAG_37___CPU:2核____HTMLTAG_39__HTMLTAG_40__HTMLTAG_41___RAM:4 GB___HTMLTAG_43__HTMLTAG_44__HTMLTAG_45___磁碟:20 GB(作業系統)+ 20 GB(作業系統)+資料)___HTMLTAG_47__HTMLTAG_48__HTMLTAG_49___網路:1 Gbps___HTMLTAG_51__HTMLTAG_52__HTMLTAG_53__HTMLTAG_54___推薦(生產):___HTMLTAG_56__HTMLTAG_57__HTMLTAG_58__HTMLTAG_59___CPU___MLTAG____CPU___ML核___HTMLTAG_61__HTMLTAG_62__HTMLTAG_63___RAM:8-32 GB(取決於工作負載)___HTMLTAG_65__HTMLTAG_66__HTMLTAG_67___磁碟__:___MLG_68_______ SSD___HTMLTAG_71__HTMLTAG_72___PostgreSQL 資料:100+ GB NVMe SSD___HTMLTAG_73__HTMLTAG_74___WAL:單獨的磁碟(可選,用於效能)___HTMLTAG_75__HTMLTAG_76__HTMLTAG_77__HTMLTAG_78__HTMLTAG_79___網路_:10 Gbps,冗餘NIC____HTMLTAG_81__HTMLTAG_82__HTMLTAG_83__HTMLTAG_84___儲存建議:___HTMLTAG_86__CODEBLOCK_0__HTMLTA G_87___軟體需求___HTMLTAG_88__HTMLTAG_89__HTMLTAG_90___作業系統:___HTMLTAG_92__HTMLTAG_93__HTMLTAG_94___Ubuntu 22.04 LTS (建議)___HTMLTAG_95__HTMLTAG_96___Rocky Linux 9 / AlmaLinux 9___HTMLTAG_97__HTMLTAG_98___Debian 12____HTMLTAG_99__HTMLTAG_100__HTMLTAG_101__HTMLTAG_102___軟體堆疊_:____HTMLTAG_104__CODEBLOCK_1__HTMLTAG_105 ___網路需求___HTMLTAG_106__HTMLTAG_107__HTMLTAG_108___延遲:___HTMLTAG_110__HTMLTAG_111__HTMLTAG_112___PostgreSQL節點之間: < 10 毫秒(同一資料中心)___HTMLTAG_113__HTMLTAG_114___etcd 節點之間:< 5 毫秒(關鍵!)___HTMLTAG_115__HTMLTAG_116___客戶端到資料庫:< 50ms___HTMLTAG_117__HTMLTAG_118__HTMLTAG_119__HTMLTAG_120___頻寬:____HTMLTAG_122__HTMLTAG_123__HTMLTAG_124___複製:取決於寫入負載___H TMLTAG_125__HTMLTAG_126___etcd:低頻寬,但低延遲關鍵___HTMLTAG_127__HTMLTAG_128__HTMLTAG_129__HTMLTAG_130___要開啟的連接埠:

___HTMLTAG_134__HTMLTAG_135__HTMLTAG_136__HTMLTAG_137___服務___HTMLTAG_138__HTMLTAG_139____連接埠___HTMLT AG_140__HTMLTAG_141___協定____HTMLTAG_142__HTMLTAG_143___用途___HTMLTAG_144__HTMLTAG_145__HTMLTAG_146______HTMLTAG_147__HTMLTAG_148__HTMLTAG_149___PostgreSQL___HTMLTAG_150__HTMLTAG_151___5432____HTMLTAG_152__HTMLTA G_153___TCP____HTMLTAG_154__HTMLTAG_155___資料庫連線____HTMLTAG_156__HTMLTAG_157__HTMLTAG_158__HTMLTAG_159___Patroni REST API___HTMLTAG_160__HTMLTAG_161___8008____HTMLTAG_162__HTMLTAG_163___TCP____HTMLTAG_164__HTMLTAG_165______運行狀況檢查,管理___HTMLTAG_166__HTMLTAGML_167HTCU​​T d客戶端___HTMLTAG_170__HTMLTAG_171___2379___HTMLTAG_172__HTMLTAG_173___TCP___HTMLTAG_174__HTMLTAG_175___客戶端到etcd通訊___HTMLTAG_1761HTMLTAG_175___客戶端到etcd通訊___HTMLTAG_1761HTMLTAG_175___客戶端到etcd18989_____HT對等點___HTMLTAG_180__HTMLTAG_181___2380___HTMLTAG_182__HTMLTAG_183___TCP___HTMLTAG_184__HTMLTAG_185___etcd叢集通訊___HTMLTAG_186__HTMLTAG_187__HTMLTAG_188__HTMLTAG_189___SSH___HTMLTAG_190__HTMLTAG_191___22____HTMLTAG_192__HTM LTAG_193___TCP___HTMLTAG_194__HTMLTAG_195___遠端管理

2。網路與防火牆設定___HTMLTAG_202__HTMLTAG_203___IP規劃___HTMLTAG_204__HTMLTAG_205__HTMLTAG_206___節點分配____HTMLTA G_207___:____HTMLTAG_208__CODEBLOCK_2__HTMLTAG_209__HTMLTAG_210___選用元件:___HTMLTAG_2 12__CODEBLOCK_3__HTMLTAG_213___主機名稱設定___HTMLTAG_214__HTMLTAG_215__HTMLTAG_216___在每個節點上___HTMLTAG_217_ __:___HTMLTAG_218__CODEBLOCK_4__HTMLTAG_219___防火牆配置(UFW)___HTMLTAG_220__HTMLTAG_221__HTMLTAG_222___在Ubuntu 上:___HTMLTAG_224__CODEBLOCK_5__HTMLTAG_225___預期輸出:___HTMLTAG_226__CODEBLOCK_6__HTMLTAG_227___防火牆配置(防火牆)___HTMLTAG_2282115202020 2023_U30022282020 23_USU​​看到上:___HTMLTAG_232__CODEBLOCK_7__HTMLTAG_233___網路效能測試___HTMLTAG_234__HTMLTAG_235__HTMLTAG_236___測試之間的延遲節點:測試之間的延遲節點_____1TAG_237___:___HTMLTAG13832____ML4_237___:___MLTAGMLTAGMLTA_237____設定 3 個虛擬機器/伺服器___HTMLTAG_240__HTMLTAG_241___選項1:VirtualBox(本地開發)___HTMLTAG_242__HTMLTAG_243__HTMLTAG_244___建立虛擬機器範本:___HTMLTAG_246__COD EBLOCK_9__HTMLTAG_247__HTMLTAG_248___設定網路:____HTMLTAG_250__CODEBLOCK_10__HTMLTAG_251___選項2:VMware Workstation___HTMLTAG_252__HTMLTAG_253__HTMLTAG_254___建立虛擬機器:1. 新虛擬機器 → 自訂 2. 硬體相容性:Workstation 17.x 3. 安裝位置:ISO 實體系統映像 (Ubuxun 硬體映像 25.25 2.虛擬機器名稱:pg-node1 6. 處理器:2 核心 7. 記憶體:4096 MB 8. 網路:橋接或帶連接埠轉送的 NAT 9. 磁碟:40 GB,單一檔案 10.完成並安裝作業系統___HTMLTAG_256__HTMLTAG_257__HTMLTAG_258___複製其他節點:___HTMLTAG_260__HTMLTAG_261__HTMLTAG_262___右鍵點選虛擬機器 → 管理 →複製___HTMLTAG_263__HTMLTAG_264___建立連結複製或完整複製____HTMLTAG_265__HTMLTAG_266___更改虛擬機器名稱和網路設定___HTMLTAG_267__HTMLTAG_268__HTMLTAG_269___安裝後步驟(所有平台)___HTMLTAG_270__HTMLTAG_271__HTMLTAG_272___更新系統:___HTMLTAG_274__CODEBLOCK_11__HTMLTAG_275__HTMLTAG_276Di___sable 交換(建議用於資料庫):___HTMLTAG_278__CODEBLOCK_12__HTMLTAG_279__HTMLTAG_280___設定係統限制:___HTMLTAG_282__CODEBLOCK_13__3838383__CODEBLOCB_13__3__32382___。基於 SSH 金鑰的驗證____HTMLTAG_284__HTMLTAG_285___產生 SSH金鑰____HTMLTAG_286__HTMLTAG_287__HTMLTAG_288___在本機電腦/跳轉伺服器上:___HTMLTAG_290__CODEBLOCK_14__HTMLTAG_291___將金鑰複製到所有節點___MLTAG_UF_UU​​T52G_291___將金鑰複製到所有節點___MLTAG_UF_UU​​T5243____43_U_U_U_U_UU​​U液客戶端___HTMLTAG_294__HTMLTAG_295__HTMLTAG_296___編輯有關使用者的資訊)___HTMLTAG_302__HTMLTAG_303__HTMLTAG_304______在每個節點上節點:

在每個節點上節點______MLTAG_305___:___HTMLTAG_306121867______時間同步(NTP/chrony)___HTMLTAG_308__HTMLTAG_309___為什麼時間同步至關重要? ___HTMLTAG_310__HTMLTAG_311__HTMLTAG_312___重要性:___HTMLTAG_314__HTMLTAG_315__HTMLTAG_316___HTMLTAG4__HTMLTAG_31711TAG_317_MLTAG_3171使用時間戳進行領導者選舉____HTMLTAG_319__HTMLTAG_320___PostgreSQL WAL 包含時間戳____HTMLTAG_321__HTMLTAG_322___監控和調試需要準確的時間____HTMLTAG_323__HTMLTAG_324__HTMLTAG_323__HTMLTA___4ML____ML_24__HT 500 毫秒(理想情況下 < 100 毫秒)___HTMLTAG_328__HTMLTAG_329___安裝與設定 chrony(建議)___HTMLTAG_330__HTMLTAG_331__HTMLTAG_332___Ubuntu/Debian____MLTAG_332___Ubuntu/Debian:___41466____ TMLTAG_335__HTMLTAG_336___設定:___HTMLTAG_338__CODEBLOCK_20__HTMLTAG_339__HTMLTAG _340___啟動並啟用_:___HTMLTAG_342__CODEBLOCK_21__HTMLTAG_343__HTMLTAG_344___預期輸出___HT MLTAG_345___:___HTMLTAG_346__CODEBLOCK_22__HTMLTAG_347___替代方案:systemd-timesyncd(更簡單)___HTMLTAG_3 48__HTMLTAG_349__HTMLTAG_350___Ubuntu/Debian:____HTMLTAG_352__CODEBLOCK_23__HTML TAG_353__HTMLTAG_354___設定:___HTMLTAG_356__CODEBLOCK_24__HTMLTAG_357__HTMLTAG_358___啟用並驗證:___HTMLTAG_3601DE___啟用並驗證_____25 __HTMLTAG_361___驗證時間同步叢集___HTMLTAG_362__HTMLTAG_363__HTMLTAG_364___建立驗證腳本:___HTMLTAG_366__CODEBLOCK_26__CODEBLOCK_27__HTMLTAG_36767。實驗室:完整的基礎架構設定____HTMLTAG_368__HTMLTAG_369____實驗室目標____HTMLTAG_370__HTMLTAG_371__HTMLTAG_372____設定 3個具有正確網路的虛擬機器____HTMLTAG_373__HTMLTAG_374____為所有必要連接埠設定防火牆___HTMLTAG_375__HTMLTAG_376___設定 SSH 無密碼驗證___HTMLTAG_377__HTMLTAG_378___設定 SSH 無密碼驗證___HTMLTAG_377__HTMLTAG_378___與 NTP同步時間______HTMLTAG_379__HTMLTAG_380___驗證節點之間的連接____HTMLTAG_381__HTMLTAG_382__HTMLTAG_383___實驗室步驟___HTMLTAG_384__HTMLTAG_385__HTMLTAG_386___步驟 1:验证虚拟机规格___HTMLTAG_387__HTMLTAG_388__CODEBLOCK_28__HTMLTAG_389__HTMLTAG_390___步骤 2:网络连接测试___HTMLTAG_391__HTMLTAG_392__CODEBLOCK_29__HTMLTAG_393__HTMLTAG_394___步骤 3:验证 SSH身份驗證___HTMLTAG_396__CODEBLOCK_30__HTMLTAG_397__HTMLTAG_398___步驟 4:檢查時間同步___HTMLTAG_399__HTMLTAG_400__CODEBLOCK_31__HTMLTAG_401__HTMLTAG_402_____ 5:執行全面的驗證____HTMLTAG_403__HTMLTAG_404__CODEBLOCK_32__HTMLTAG_405__HTMLTAG_406____預期輸出_(全綠色複選標記):

___COBLOCK_4088365K_40883。摘要___HTMLTAG_410__HTMLTAG_411___清單基礎設施___HTMLTAG_412__HTMLTAG_413___在繼續第 5 課之前,請確保:___HTMLTAG_414__HTMLTAG_415___✅ 3 __HTMLTAG_415___✅ 3 7/___1 CPU、RAM、磁碟___HTMLTAG_418__HTMLTAG_419___✅ 網路設定:靜態IP、/etc/hosts___HTMLTAG_422__HTMLTAG_4 23___✅ 防火牆規則:連接埠22、5432、8008、2379、2380___HTMLTAG_426__HTMLTAG_427___✅___HTHTMLTASS_428___H密鑰已部署,無密碼驗證有效___HTMLTAG_430__HTMLTAG_431___✅ 時間同步配置有chrony/timesyncd___HTMLTAG_434__HTMLTAG_435___✅ ___ML____434________ML435___24:___435___停用交換,核心參數已調整___HTMLTAG_438__HTMLTAG_439___✅ 連線已驗證:所有節點都可以互相存取___HTMLTAG_442__HTMLTAG_443___故障排除___HTMLTAG_444__HTMLTAG_445__HTMLTAG_446___問題:SSH連線拒絕____HTMLTAG_447__HTMLTAG_448__CODEBLOCK_34__HTMLTAG_449__HTMLTAG_450____問題:偵測到時間漂移____HTMLTAG_451__HTMLTAG_452__CODEBLOCK_35__HTTAG _453__HTMLTAG_454___問題:網路無法存取____HTMLTAG_455__HTMLTAG_456__CODEBLOCK_36__HTMLTAG_457___審核問題____HTMLTAG_458__HTMLTAG_459__HTMLTA___審核問題____HTMLTAG_458__HTMLTAG_459__HTMLTAG_460___為什麼為什麼Patroni 叢集需要至少 3 個節點? ___HTMLTAG_461__HTMLTAG_462____需要防火牆 要開啟哪些連接埠?為什麼? ___HTMLTAG_463__HTMLTAG_464___為什麼時間同步對於分散式系統很重要? ___HTMLTAG_465__HTMLTAG_466___應該為 PostgreSQL 伺服器啟用 Swap 嗎?為什麼? ___HTMLTAG_467__HTMLTAG_468___etcd 節點之間的延遲應該是多少? ___HTMLTAG_469__HTMLTAG_470__HTMLTAG_471___準備下一課____HTMLTAG_472__HTMLTAG_473___第 5課程將指導說明安裝PostgreSQL:___HTMLTAG_476__HTMLTAG_477__HTMLTAG_478___從軟體包儲存庫安裝 PostgreSQL____HTMLTAG_479__HTMLTAG_480___配置 post pg_hba.conf____HTMLTAG_483__HTMLTAG_484___實驗室:在 3 上安裝 PostgreSQL節點____HTMLTAG_485__HTMLTAG_486___