本文說明如何在現有資料中新增資料中心 (又稱為「區域」) 中央。
新增資料中心前的考量事項
安裝之前,請務必瞭解如何設定 OpenLDAP, 可以跨資料中心使用 ZooKeeper、Cassandra 和 Postgres 伺服器。您也必須確保 兩個資料中心的節點之間會開啟必要的通訊埠。
- OpenLDAP
每個資料中心都有自己的 OpenLDAP 伺服器,而且已設定複製功能。當您 安裝新的資料中心,您必須將 OpenLDAP 設為使用複製功能,並且 請在現有資料中心重新設定 OpenLDAP 伺服器,才能使用複製功能。
- ZooKeeper
針對以下項目的
ZK_HOSTS
屬性: 請同時指定這兩個資料中心內所有 ZooKeeper 節點的 IP 位址或 DNS 名稱 並以「:observer」修飾符標記任何節點 沒有:observer
修飾符的節點稱為「voters」。一定是奇數 「選民」人數配置狀態在這個拓撲中,主機 9 的 ZooKeeper 主機是觀察器:
在下列設定檔範例中,節點 9 標有
:observer
修飾符,可讓您有五選投票者:節點 1、2、3、7 和 8。適用於
ZK_CLIENT_HOSTS
屬性,請僅指定 ZooKeeper 的 IP 位址或 DNS 名稱 資料中心中的所有 ZooKeeper 節點,以相同的順序排列 中央。 - Cassandra
對於每個資料中心的
CASS_HOSTS
,請務必指定所有 Cassandra IP 位址 (非 DNS 名稱) 例如 AI 開發原則針對資料中心 1,請先列出該資料中心的 Cassandra 節點。資料中心適用 2,請先列出該資料中心內的 Cassandra 節點。列出相同的 Cassandra 節點 ,以便處理資料中心中的所有 Cassandra 節點所有 Cassandra 節點都必須含有「:d,r」後置字串例如 'ip:1,1 = 資料中心 1,機架/供應區域 1 和 'ip:2,1 = 資料中心 2 和機架/供應區域 1
例如:「192.168.124.201:1,1 192.168.124.202:1,1 192.168.124.203:1,1 192.168.124.204:2,1」。 192.168.124.205:2,1 192.168.124.206:2,1 吋
每個資料中心在機架/供應可用區 1 中的第一個節點將做為種子使用 伺服器在這個部署模型中,Cassandra 設定如下所示:
-
Postgres
根據預設,Edge 會在主模式中安裝所有 Postgres 節點。不過 資料中心,請將 Postgres 節點設為使用主要執行個體待命複製功能, 主要節點故障,待命節點可以繼續接收伺服器流量。通常您需要設定 一個位於一個資料中心的主要 Postgres 伺服器,在第二資料中則插入待命伺服器 中央。
如果現有資料中心已設定在 進入主要執行個體/待命模式,然後取消註冊現有的待命節點,並 並替換為新資料中心的待命節點。
下表列出了兩者的 Postgres 設定: 情境:
之前 使用後 dc-1 中的單一主 Postgres 節點
dc-1 中的主要 Postgres 節點
dc-2 中的待命 Postgres 節點
dc-1 中的主要 Postgres 節點
dc-1 中的待命 Postgres 節點
dc-1 中的主要 Postgres 節點
dc-2 中的待命 Postgres 節點
取消註冊 dc-1 中的舊 Standby Postgres 節點
- 通訊埠需求
您必須確保必要的通訊埠在兩個資料中心的節點之間開啟。 如需通訊埠圖表,請參閱通訊埠需求。
更新現有的資料中心
新增資料中心時,您必須執行安裝及設定新資料的步驟 但也需要更新原始資料中心中的節點。這些 因為您要在新的 Cassandra 和 ZooKeeper 節點中新增 Cassandra 和 ZooKeeper 節點,因此需要修改 資料中心必須可供現有資料中心存取,且必須重新設定 以便使用複製功能。
建立設定檔
以下顯示兩座資料中心的無訊息設定檔,其中各資料 Center 有 6 個節點,如安裝拓撲所示。請注意,dc-1 的設定檔新增了 其他設定:
- 設定在兩個 OpenLDAP 節點間複製的 OpenLDAP。
- 將新的 Cassandra 和 ZooKeeper 節點從 dc-2 新增至 dc-1 的設定檔。
# Datacenter 1 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) MSIP=$IP1 ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=1 LDAP_PEER=$IP7 APIGEE_LDAPPW=secret MP_POD=gateway-1 REGION=dc-1 ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1 $IP7:2,1 $IP8:2,1 $IP9:2,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>" |
# Datacenter 2 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) MSIP=$IP7 ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=2 LDAP_PEER=$IP1 APIGEE_LDAPPW=secret MP_POD=gateway-2 REGION=dc-2 ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP7:2,1 $IP8:2,1 $IP9:2,1 $IP1:1,1 $IP2:1,1 $IP3:1,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>" |
新增資料中心
請按照以下程序安裝新的資料中心。
在過程中,資料中心的名稱如下:
- dc-1:現有的資料中心
- dc-2:新的資料中心
如要新增資料中心,請按照下列步驟操作:
- 在 dc-1 上,使用新 dc-1 重新在原始 Cassandra 節點上執行 setup.sh
設定檔,其中包括來自 dc-2 的 Cassandra 節點:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
- 在 dc-1 上,重新在 Management Server 節點上執行 setup.sh:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
- On dc-2,在所有節點上安裝
apigee-setup
。詳情請參閱安裝 Edge apigee-setup 公用程式。 資訊 - 在 dc-2 上,在適當的節點上安裝 Cassandra 和 ZooKeeper:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
- 在 dc-2 上,於所有 Cassandra 節點上執行重新建構指令,並指定
dc-1 的區域名稱:
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1
只有在下列情況下,您才需要傳送使用者名稱和密碼 為 Cassandra 啟用 JMX 驗證。
- 在 dc-2 上,在適當的節點上安裝管理伺服器:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
- 在 dc-2 中的 Management Server 節點上,安裝
apigee-provision
。 這會安裝apigee-adminapi.sh
公用程式:/opt/apigee/apigee-service/bin/apigee-service apigee-provision install
- 在 dc-2 上,在適當的節點上安裝路徑和訊息處理器:
/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
- 在 dc-2 上,在適當的節點上安裝 Qpid:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
- 在 dc-2 上,在適當的節點上安裝 Postgres:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
- 設定 Postgres 節點的 Postgres 主要執行個體/待命。dc-1 中的 Postgres 節點是
而 dc-2 中的 Postgres 節點是待命伺服器。
- 在 dc-1 的主要節點上,編輯設定檔以進行設定:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- 對新的主要執行個體啟用複製功能:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
- 在 dc-2 的待命節點上,編輯以下設定檔進行設定:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- 在 dc-2 的待命節點上,停止伺服器,然後刪除任何
現有 Postgres 資料:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
rm -rf /opt/apigee/data/apigee-postgresql/
如有需要,您可以先備份這些資料再刪除。
- 在 dc-2 中設定待命節點:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- 在 dc-1 的主要節點上,編輯設定檔以進行設定:
- 在 dc-1 上更新 Analytics 設定並設定機構。
- 在 dc-1 的 Management Server 節點上,取得 Postgres 的 UUID
節點:
apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \ --admin adminEmail --pwd adminPword --host localhost
UUID 會顯示在傳回資料的結尾處。儲存該值。
- 在 dc-2 的 Management Server 節點上,取得 Postgres 的 UUID 如前一步驟所示儲存該值。
- 在 dc-1 的管理伺服器節點上,找出
數據分析和用戶群組以下許多指令都需要這項資訊。
分析群組的預設名稱為「axgroup-001」,使用者的名稱則是 群組為「consumer-group-001」。在區域的靜音設定檔中,您可以設定名稱 方法是使用
AXGROUP
屬性。如果您不確定數據分析資料或消費者群組名稱,請使用下列指令 顯示指令:
apigee-adminapi.sh analytics groups list \ --admin adminEmail --pwd adminPword --host localhost
這個指令會傳回「name」欄位的 Analytics 群組名稱,以及消費端群組 。
- 在「管理伺服器 dc-1 的節點」上,移除現有的 Postgres
伺服器:
- 從 consumer-group 中移除 Postgres 節點:
apigee-adminapi.sh analytics groups consumer_groups datastores remove \ -g axgroup-001 -c consumer-group-001 -u UUID \ -Y --admin adminEmail --pwd adminPword --host localhost
如果 dc-1 設為在以下環境中執行兩個 Postgres 節點: 主節點/待機模式,請將以下兩者移除:
apigee-adminapi.sh analytics groups consumer_groups datastores remove \ -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" \ -Y --admin adminEmail --pwd adminPword --host localhost
- 從分析群組中移除 Postgres 節點:
apigee-adminapi.sh analytics groups postgres_server remove \ -g axgroup-001 -u UUID -Y --admin adminEmail \ --pwd adminPword --host localhost
如果 dc-1 設為透過主要/待命模式執行兩個 Postgres 節點, 例如:
apigee-adminapi.sh analytics groups postgres_server \ remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \ --pwd adminPword --host localhost
- 從 consumer-group 中移除 Postgres 節點:
- 在 dc-1 的 Management Server 節點上新增主要/待命節點
傳送至分析群組的 Postgres 伺服器:
- 將兩個 Postgres 伺服器新增至分析群組:
apigee-adminapi.sh analytics groups postgres_server \ add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \ --pwd adminPword --host localhost
Ehere UUID_1 對應於 dc-1 和 UUID_2 會對應至待命 Postgres dc-2 中的節點。
- 將 PG 伺服器新增至取用端群組,做為主要/待命伺服器:
apigee-adminapi.sh analytics groups consumer_groups datastores \ add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail \ --pwd adminPword --host localhost
- 將兩個 Postgres 伺服器新增至分析群組:
- 將 Qpid 伺服器從 dc-2 新增至數據分析群組:
- 在 dc-1 的 Management Server 節點上,取得 Qpid 的 UUID
dc-2 中的節點:
apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \ --admin adminEmail --pwd adminPword --host localhost
UUID 會顯示在傳回資料的結尾處。儲存這些值。
- 在 dc-1 的 Management Server 節點上,將 Qpid 節點新增至
Analytics 群組 (執行這兩項指令):
apigee-adminapi.sh analytics groups qpid_server \ add -g axgroup-001 -u "UUID_1" --admin adminEmail \ --pwd adminPword --host localhost
apigee-adminapi.sh analytics groups qpid_server \ add -g axgroup-001 -u "UUID_2" --admin adminEmail \ --pwd adminPword --host localhost
- 在 dc-1 的 Management Server 節點上,將 Qpid 節點新增至
用戶群組 (執行這兩項指令):
apigee-adminapi.sh analytics groups consumer_groups consumers \ add -g axgroup-001 -c consumer-group-001 -u "UUID_1" \ --admin adminEmail --pwd adminPword --host localhost
apigee-adminapi.sh analytics groups consumer_groups consumers \ add -g axgroup-001 -c consumer-group-001 -u "UUID_2" \ --admin adminEmail --pwd adminPword --host localhost
- 在 dc-1 的 Management Server 節點上,取得 Qpid 的 UUID
dc-2 中的節點:
- 從 dc-1 取消註冊並刪除舊的 Postgres 待命伺服器:
- 取消註冊現有的 dc-1 Postgres 待命伺服器:
apigee-adminapi.sh servers deregister -u UUID -r dc-1 \ -p analytics -t postgres-server -Y --admin adminEmail \ --pwd adminPword --host localhost
其中 UUID 是 dc-1 中的舊待命 Postgres 節點。
- 刪除現有的 dc-1 Postgres 待命伺服器:
apigee-adminapi.sh servers delete -u UUID \ --admin adminEmail --pwd adminPword --host localhost
- 取消註冊現有的 dc-1 Postgres 待命伺服器:
- 在 dc-1 的 Management Server 節點上,取得 Postgres 的 UUID
節點:
- 使用正確的複製係數更新兩個資料中心的 Cassandra 索引鍵空間。個人中心
這個步驟只需要在任一資料中心的任何 Cassandra 伺服器上執行這個步驟一次:
- 啟動 Cassandra
cqlsh
公用程式:/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- 在「cqlsh>」執行下列 CQL 指令設定複製作業的提示
Cassandra 索引鍵空間的層級:
ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- 使用下列指令查看索引鍵空間:
select * from system.schema_keyspaces;
- 離開
cqlsh
:exit
- 啟動 Cassandra
- 在 dc-1 的所有 Cassandra 節點上執行下列
nodetool
指令,無須支付費用 記憶體:/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
只有在下列情況下,您才需要傳送使用者名稱和密碼 為 Cassandra 啟用 JMX 驗證。
- 針對您要在資料中心各處支援的每個機構和環境:
- 在 dc-1 的管理伺服器節點上,將新的 MP_POD 新增至
機構:
apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 \ --admin adminEmail --pwd adminPword --host localhost
其中 gateway-2 是 SDK 所定義的閘道 Pod 名稱 MP_POD 屬性。
- 將新的訊息處理器新增至機構和環境:
- 在 dc-2 的 Management Server 節點上,取得
dc-2 中的訊息處理器節點:
apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \ -t message-processor --admin adminEmail --pwd adminPword --host localhost
UUID 會顯示在傳回資料的結尾處。儲存這些值。
- 在 dc-1 的 Management Server 節點上 (個別訊息處理器)
,在 dc-2 中,將「Message Processor」新增至機構的環境:
apigee-adminapi.sh orgs envs servers add -o orgName -e envName \ -u UUID --admin adminEmail --pwd adminPword --host localhost
- 在 dc-2 的 Management Server 節點上,取得
dc-2 中的訊息處理器節點:
- 在 dc-1 的 Management Server 節點上查看機構:
apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \ --admin adminEmail --pwd adminPword --host localhost
其中 apiProxyName 是機構中部署的 API Proxy 名稱。
- 在 dc-1 的管理伺服器節點上,將新的 MP_POD 新增至
機構: