Private Cloud v. 4.17.05 專用 Edge
本文說明如何在現有資料中新增資料中心 (又稱為「區域」) 中央。
新增資料中心前的考量事項
安裝之前,請務必瞭解如何設定 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
所有資料中心的 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 BIND_ON_ALL_INTERFACES=y 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 BIND_ON_ALL_INTERFACES=y 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 上,重新在管理伺服器節點上執行 setup.sh:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1 - 在 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 -h cassIP 重建。 dc-1 - 在 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 安裝 - 在 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 已設為有兩個 Postgres 在主要/待命模式下執行的節點,並且作為此程序的一部分,使用 dc-1 中的現有主要 Postgres 節點做為主要節點, dc-2 中的 Postgres 節點做為待命伺服器。在這項程序的後續階段中 將取消註冊 dc-1 中的現有 Postgres 待命伺服器。- 在 dc-1 的主要節點上,編輯以下設定檔進行設定:
PG_MASTER=IPorDNSofDC1Master
PG_STANDBY=IPorDNSofDC2Standby - 啟用新主要執行個體的複製功能:
> /opt/apigee/apigee-service/bin/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 伺服器 list -r dc-1 -p analytics -t postgres-server --admin adminEmail --pwd adminPword --host localhost
UUID 會顯示在傳回資料的結尾處。儲存該值。
注意:如果 dc-1 設為有兩個 Postgres 節點運作, 主要執行個體/待命模式,您會在輸出結果中看到兩個 IP 位址和 UUID。儲存兩個 UUID。 您應能從 IP 中判斷哪個 UUID 用於主要執行個體,以及哪些適用於 待命節點 - 在 dc-2 的 Management Server 節點上,取得 Postgres 的 UUID 如前一步驟所示儲存該值。
- 在 dc-1 的管理伺服器節點上,找出
數據分析和用戶群組以下許多指令都需要這項資訊。
根據預設,分析群組名稱為 axgroup-001,以及用戶的名稱 則是 consumer-group-001在區域的靜音設定檔中,您可以設定名稱 AXGROUP 屬性建立數據分析群組的資料。
如果您不確定數據分析資料或消費者群組名稱,請使用下列指令 顯示指令:
>apigee-adminapi.sh 數據分析 群組清單 --admin adminEmail --pwd adminPword --host localhost
這個指令會傳回「name」欄位的 Analytics 群組名稱,以及消費端群組 。 - 在「管理伺服器 dc-1 的節點」上,移除現有的 Postgres
伺服器:
- 從 consumer-group 中移除 Postgres 節點:
>apigee-adminapi.sh 分析群組 consumer_groups 資料儲存庫移除 -g axgroup-001 -c consumer-group-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost
如果 dc-1 設為在以下環境中執行兩個 Postgres 節點: 主節點/待機模式,請移除以下兩者:
>apigee-adminapi.sh 分析群組 consumer_groups 資料儲存庫移除 -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" -Y --admin adminEmail --pwd adminPword --host localhost - 從數據分析群組中移除 Postgres 節點:
>apigee-adminapi.sh Analytics 群組 postgres_server remove -g axgroup-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost
如果 dc-1 設為透過主要/待命模式執行兩個 Postgres 節點,請移除 兩者:
>apigee-adminapi.sh Analytics 群組 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 群組 postgres_server add -g axgroup-001 -u「UUID_1,UUID_2」 --admin adminEmail --pwd adminPword --host localhost
其中 UUID_1 對應於 dc-1 和 UUID_2 會對應至待命 Postgres dc-2 中的節點。 - 將 PG 伺服器新增至取用端群組,做為主要/待命伺服器:
>apigee-adminapi.sh 分析群組 consumer_groups 資料儲存庫新增 -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 伺服器清單 -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 群組 qpid_server add -g axgroup-001 -u 「UUID_1 UUID_2」--admin adminEmail --pwd adminPword --host localhost - 在 dc-1 的 Management Server 節點上,將 Qpid 節點新增至
用戶群組:
>apigee-adminapi.sh 分析群組 consumer_groups 消費者 add -g axgroup-001 -c consumer-group-001 -u "UUID_1,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 伺服器取消註冊 -u UUID -r dc-1 -p analytics -t postgres-server -Y --admin adminEmail --pwd adminPword --host localhost
其中 UUID 是舊的待命執行個體 Postgres 節點 (位於 dc-1)。 - 刪除現有的 dc-1 Postgres 待命伺服器:
注意:這個指令不會解除安裝 Postgres 伺服器節點。這項服務 只會將其從 Edge 節點清單中移除您之後可以前往下列網站解除安裝 Postgres: 節點 (如有需要的話)
>apigee-adminapi.sh 伺服器刪除 -u UUID --admin adminEmail --pwd adminPword --host localhost
- 取消註冊現有的 dc-1 Postgres 待命伺服器:
- 在 dc-1 的 Management Server 節點上,取得 Postgres 的 UUID
節點:
- 使用正確的複製係數更新兩個資料中心的 Cassandra 索引鍵空間。個人中心
這個步驟只需要在任一資料中心的任何 Cassandra 伺服器上執行一次:
注意:下列所有指令都會將複製係數設為「3」,表示 叢集內的三個 Cassandra 節點進行安裝時,請視需要修改這個值。- 啟動 Cassandra cqlsh 公用程式:
> /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP - 在「cqlsh>」執行下列 CQL 指令設定複製作業的提示
Cassandra 索引鍵空間的層級:
- cqlsh>替代 KEYSPACE「identityzone」WITH 複製 = { 'class': 'NetworkTopologyStrategy', 「dc-1」:'3','dc-2': '3'};
- cqlsh>替代命名空間 「system_traces」WITH 複製 = { 'class': 'NetworkTopologyStrategy', 'dc-1': 「3','dc-2」:'3'};
- 使用下列指令查看索引鍵空間:
cqlsh>從中選取 * system.schema_keyspaces; - 離開 cqlsh:
cqlsh>結束
- 啟動 Cassandra cqlsh 公用程式:
- 為釋出記憶體的 dc-1 中的所有 Cassandra 節點執行下列 nodetool 指令:
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP 資源清理 - 針對您要在各資料上支援的每個機構和環境建立指標
中心:
- 在 dc-1 的管理伺服器節點上,將新的 MP_POD 新增至
機構:
>apigee-adminapi.sh 機構 Pod add -o orgName -r dc-2 -p gateway-2 --admin adminEmail --pwd adminPword --host localhost
其中 gateway-2 是 MP_POD 定義的閘道 Pod 名稱 屬性。 - 將新的訊息處理器新增至機構和環境:
- 在 dc-2 的 Management Server 節點上,取得
dc-2 中的訊息處理器節點:
>apigee-adminapi.sh 伺服器清單 -r dc-2 -p gateway-2 -t message-processor --admin adminEmail --pwd adminPword --host localhost
UUID 會顯示在傳回資料的結尾處。儲存這些值。 - 在 dc-1 的 Management Server 節點上 (個別訊息處理器)
位於 dc-2 內,將「訊息處理器」新增至機構的環境:
>apigee-adminapi.sh 機構 envs 伺服器 add -o orgName -e envName -u UUID --admin adminEmail --pwd adminPword --host localhost
- 在 dc-2 的 Management Server 節點上,取得
dc-2 中的訊息處理器節點:
- 在 dc-1 的管理伺服器節點上檢查機構:
>apigee-adminapi.sh orgs API Deploy -o orgName -a apiProxyName --admin adminEmail --pwd adminPword --host localhost
其中 apiProxyName 是部署在 並根據貴機構的使命 價值觀和目標進行調整
- 在 dc-1 的管理伺服器節點上,將新的 MP_POD 新增至
機構: