新增 ZooKeeper 節點

Edge for Private Cloud 4.18.01

本文說明如何為 Private Cloud 安裝作業的現有 Edge 新增三個新的 ZooKeeper 節點。

您可以將一個或兩個 ZooKeeper 節點新增至現有的 Edge 安裝項目,但是您必須確保始終有奇數的 ZooKeeper 選民節點,如下所述。

現有的 Edge 設定

實際工作環境系統支援的所有 Edge 拓撲,都指定使用三個 ZooKeeper 節點。這三個節點會指定至設定檔中的 ZK_HOSTSZK_CLIENT_HOSTS 屬性,如下所示:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com 
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt 
MSIP=$IP1 
USE_LDAP_REMOTE_HOST=n 
LDAP_TYPE=1
APIGEE_LDAPPW=secret 
MP_POD=gateway
REGION=dc-1 
ZK_HOSTS="$IP1 $IP2 $IP3" 
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" 
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1" 
SKIP_SMTP=n
SMTPHOST=smtp.example.com 
SMTPUSER=smtp@example.com  
SMTPPASSWORD=smtppwd       

其中:

  • ZK_HOSTS 指定 ZooKeeper 節點的 IP 位址或 DNS 名稱。IP 位址或 DNS 名稱必須在所有 ZooKeeper 節點上列出相同的順序。在多資料中心環境中,列出兩個資料中心的所有 ZooKeeper 節點。
  • ZK_CLIENT_HOSTS 會指定這個資料中心所使用的 ZooKeeper 節點的 IP 位址或 DNS 名稱。所有 ZooKeeper 節點的 IP 位址或 DNS 名稱必須依序列出。

    在單一資料中心安裝作業中,這些節點與 ZK_HOSTS 所指定的節點相同。在多資料中心環境中,只列出這個資料中心的 ZooKeeper 節點。

修改設定檔以新增三個新的 ZooKeeper 節點

在本例中,三個新的 ZooKeeper 節點位於下列 IP 位址:

  • 10.10.0.14
  • 10.10.0.15
  • 10.10.0.16

您必須先更新 Edge 設定檔,才能新增新節點:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
# Add the new node IP addresses.
IP14=10.10.0.14
IP15=10.10.0.15
IP16=10.10.0.16
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com 
...
# Update ZK_HOSTS to add each new node after an existing nodes. 
ZK_HOSTS="$IP1 $IP2 $IP3 $IP14 $IP15 $IP16:observer" 
# Update ZK_Client_HOSTS to add each new node after an existing nodes. 
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3 $IP14 $IP15 $IP16" 

使用「:observer」修飾符標示 ZK_HOSTS 中的最後一個節點。沒有「:observer」修飾符的節點稱為「投票者」。設定中必須有奇數個「投票者」。因此,在這個設定中,您有 5 個 ZooKeeper 投票者和一個觀察者。

請務必以相同順序將節點新增至 ZK_HOSTSZK_CLIENT_HOSTS。不過,設定 ZK_CLIENT_HOSTS 時,請省略「:observer」修飾符。

設定 Edge

編輯設定檔後,您必須執行下列所有任務。

在新節點上安裝 ZooKeeper

  1. 按照「安裝 Edge apigee-setup 公用程式」一文所述,在第一個節點上安裝 apigee-setup
  2. 使用下列指令在第一個節點安裝 ZooKeeper:
    > /opt/apigee/service/bin/apigee-service apigee-zookeeper install
    > /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper setup -f updatedConfigFile
  3. 針對其他新的 ZooKeeper 節點重複步驟 1 和 2。

重新設定現有的 ZooKeeper 節點

在現有的 ZooKeeper 節點上:

  1. 使用「-p c」設定檔和新設定檔重新執行設定指令:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper setup -f updatedConfigFile

重新啟動所有 Zookeeper 節點

在所有 ZooKeeper 節點上:

  1. 重新啟動節點:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart

    您必須重新啟動所有 ZooKeeper 節點,但重新啟動的順序不拘。

重新設定管理伺服器節點

在 Management Server 節點上:

  1. 執行設定指令:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server setup -f updatedConfigFile
  2. 重新啟動管理伺服器:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-management-server restart

重新設定所有路由器

在所有 Router 節點上:

  1. 執行設定指令:
    > /opt/apigee/apigee-service/bin/apigee-service edge-router setup -f updatedConfigFile
  2. 重新啟動路由器:
    > /opt/apigee/apigee-service/bin/apigee-service edge-router restart

重新設定所有訊息處理器

在所有訊息處理工具節點上:

  1. 執行設定指令:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor setup -f updatedConfigFile
  2. 重新啟動訊息處理器:
    > /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

重新設定所有 Qpid 節點

在所有 Qpid 節點上:

  1. 執行設定指令:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-qpid-server setup -fupdatedConfigFile
  2. 重新啟動 Qpid:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-qpid-server restart

重新設定所有 Postgres 節點

在所有 Postgres 節點上:

  1. 執行設定指令:
    > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server setup -f updatedConfigFile
  2. 重新啟動 Postgres:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-postgres-server restart

驗證安裝

您可以使用 netcat (nc) 或 telnet 將指令傳送至 2181 通訊埠,驗證新 ZooKeeper 節點的安裝作業。如要進一步瞭解 ZooKeeper 指令,請參閱:http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands

驗證方法:

  1. 如未安裝在 ZooKeeper 節點上,請安裝 nc:
    > sudo yum install nc
  2. 執行下列 nc 指令:
    > echo stat | nc localhost 2181
  3. 針對每個 ZooKeeper 節點重複執行步驟 1 和 2。
    在節點輸出的「Mode」行中,一個節點應指定為觀察器,一個節點為領導者,其餘為追隨者。