通過雲企業網CEN、網路負載平衡NLB和私網串連PrivateLink,跨地區打通兩個Elasticsearch叢集的私網,並配置跨叢集複製CCR(Cross-Cluster Replication),實現索引資料的近即時同步,滿足跨地區容災和讀寫分離需求。
前提條件
已在兩個不同地區(如華東2上海和華東1杭州)分別建立Elasticsearch執行個體,作為Leader叢集和Follower叢集。建立執行個體的操作,請參見購買Elasticsearch。
兩個叢集的管控部署模式均為雲原生新管控(v3)。如果叢集為v1或v2架構,需先完成架構升級,請參見執行個體架構升級。
兩個叢集的版本均為7.10.0及以上,且Follower叢集版本不低於Leader叢集版本。
方案概述
阿里雲ES執行個體部署在獨立的管控VPC內,而非使用者VPC中。即使通過CEN打通了兩個地區的使用者VPC,也無法直接實現叢集間的私網互連。需要在CEN互連的基礎上,藉助NLB和PrivateLink打通兩個叢集之間的管控VPC網路。整體流程如下:
通過CEN打通Leader叢集和Follower叢集所在VPC的跨地區網路。
在Follower叢集所在地區的VPC中建立NLB,通過IP類型伺服器組將流量跨地區轉寄到Leader叢集的私網IP。
基於該NLB建立PrivateLink終端節點服務。
在Follower叢集的ES控制台中配置私網串連,擷取PrivateLink網域名稱。
在Follower叢集的Kibana中添加遠程叢集,配置CCR。
操作步驟
步驟一:通過CEN打通跨地區VPC網路
通過雲企業網CEN,將Leader叢集所在地區的VPC和Follower叢集所在地區的VPC實現跨地區互連,詳細步驟請參見跨地區VPC互連。
CEN企業版轉寄路由器要求VPC中至少有2個不同可用性區域的VSwitch。如果VPC中只有1個VSwitch,需要在另一個可用性區域建立新VSwitch後才能將VPC掛載到轉寄路由器。
步驟二:擷取Leader叢集的私網IP
在Leader叢集的基本資料頁面,找到私網地址欄位,複製私網網域名稱。
通過同VPC內的ECS執行個體,執行以下命令解析Leader叢集的私網IP:
ping <Leader叢集私網網域名稱>記錄解析出的IP地址,後續步驟中需要使用。
步驟三:建立NLB和伺服器組
在Follower叢集所在的VPC中建立NLB,將流量轉寄到Leader叢集。
建立伺服器組。
在左側導覽列,單擊伺服器組。
單擊建立伺服器組,配置以下參數:
參數
說明
伺服器群組類型
選擇IP類型。
轉送連接埠
開啟全連接埠轉寄。
健全狀態檢查
連接埠填寫9300。
在已建立的伺服器組中,單擊添加後端伺服器,添加步驟一中擷取的Leader叢集私網IP,連接埠保持預設。
建立NLB執行個體和監聽。
如已有NLB執行個體,可直接建立監聽;如沒有,需先建立NLB執行個體(跳過監聽配置)。
在左側導覽列,單擊執行個體,選擇或建立NLB執行個體。
進入執行個體詳情頁,單擊監聽頁簽,單擊建立監聽。
開啟全連接埠功能,監聽連接埠範圍選取9200~9300。
伺服器組選擇IP類型以及上一步建立的伺服器組。
步驟四:配置PrivateLink
通過PrivateLink打通Follower叢集管控VPC到Leader叢集的網路。
建立終端節點服務。
在左側導覽列,單擊終端節點服務。
單擊建立終端節點服務,配置以下參數:
參數
說明
服務資源類型
選擇NLB。
服務資源
選擇步驟三中建立或使用的NLB執行個體。
可用性區域
選擇NLB執行個體所在的可用性區域。
自動接受終端節點串連
選擇是。
在Follower叢集中添加私網串連。
登入Elasticsearch控制台,進入Follower叢集的執行個體詳情頁。
在左側導覽列,選擇 配置與管理>安全配置。
在叢集網路設定地區,單擊配置執行個體私網串連。
單擊添加私網串連,選擇上一步建立的終端節點服務。
等待串連狀態變為已串連。
擷取PrivateLink網域名稱。
串連成功後,返回PrivateLink控制台,在終端節點服務的終端節點串連狀態頁簽中,查看自動建立的終端節點串連。該串連的網域名稱即為PrivateLink私網網域名稱,後續配置遠程叢集時使用。
步驟五:配置跨叢集複製(CCR)
進入Follower叢集的Kibana,具體步驟請參見通過公網地址登入Kibana(v2/v3部署架構)。
在Follower叢集的執行個體詳情頁,單擊左側導覽列的可視化控制,單擊進入Kibana。
添加遠程叢集。
在Kibana左側菜單中,單擊Stack Management。
在Data地區,單擊Remote Clusters。
單擊Add a remote cluster,配置以下參數:
參數
說明
Name
填寫Leader叢集的執行個體ID。
Proxy mode
開啟代理模式。
Proxy address
填寫步驟四中擷取的PrivateLink網域名稱,格式為
<網域名稱>:9300。單擊Save,確認串連狀態為Connected。
配置CCR跟隨模式。
CCR支援兩種模式:
模式
說明
Follower索引
針對指定的單個索引進行複製。
自動跟隨模式
根據索引名稱模式自動複製匹配的索引,適合批量同步。
自動跟隨模式建立後,Leader叢集中建立的索引資料會自動同步到Follower叢集。已有索引不會自動同步,如需同步已有索引,請在Follower叢集手動建立Follower索引。
以自動跟隨模式為例:
在Stack Management中,單擊Cross-Cluster Replication。
選擇Auto-follow patterns頁簽,單擊Create an auto-follow pattern。
Remote cluster選擇上一步添加的遠程叢集,Index patterns(索引模式)填寫
*(複製所有索引)。如只需複製特定索引,可填寫具體的索引名稱模式,如logs-*。單擊Create。
步驟六:驗證資料同步
驗證存量資料同步。
在Follower叢集的Kibana中,執行以下命令查詢Leader叢集中已有的索引資料:
GET /<索引名>/_search如果返回結果與Leader叢集一致,說明存量資料已完成同步。
驗證增量資料同步。
在Leader叢集的Kibana中,建立新索引並寫入文檔:
PUT /test-increment-index POST /test-increment-index/_doc { "title": "increment test", "content": "This is a test document for CCR incremental sync." }在Follower叢集的Kibana中,查詢該索引:
GET /test-increment-index/_search如果返回的文檔內容與寫入的一致,說明增量資料已即時同步。
常見問題
遠程叢集串連狀態不是Connected?
檢查以下幾點:
Leader ES叢集的VPC私網訪問白名單是否包含NLB所在VPC的網段。在跨地區情境下,NLB通過CEN轉寄健全狀態檢查和資料流量到Leader ES時,源IP來自NLB所在VPC,如果Leader ES白名單未包含這些IP,會導致NLB健全狀態檢查異常和串連失敗。
CEN跨地區頻寬是否已指派,兩個VPC之間的網路是否已打通。
NLB監聽連接埠範圍是否包含9200~9300。
伺服器組中的Leader叢集私網IP是否正確。
伺服器組的健全狀態檢查連接埠是否為9300。
PrivateLink終端節點服務的串連狀態是否為"已串連"。
跨地區CCR的同步延遲是否比同地區更高?
跨地區CCR的同步延遲受跨地區網路延遲影響,通常比同地區情境略高,但仍可保持在秒級範圍內。實際延遲取決於CEN頻寬配置、資料量和網路狀況。建議根據業務需求合理配置CEN跨地區頻寬。
CCR對叢集版本有什麼要求?
Follower叢集的版本不能低於Leader叢集的版本。兩個叢集均需為7.10.0及以上版本,且管控部署模式為雲原生新管控(v3)。