新增 ZooKeeper 節點

本文說明如何將三個新的 ZooKeeper 節點新增至現有的 Edge for Private Cloud 安裝。

您可以將一或兩個 ZooKeeper 節點新增至現有的 Edge 安裝,但必須確保 ZooKeeper 投票者節點一律為奇數,如下所述。

現有 Edge 設定

正式環境系統支援的所有 Edge 拓撲都指定使用三個 ZooKeeper 節點。這三個節點會指定給設定檔中的 ZK_HOSTS 和 ZK_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 名稱。所有 ZooKeeper 節點上的 IP 位址或 DNS 名稱,都必須以相同順序列出。在多資料中心環境中,請列出兩個資料中心的所有 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_HOSTS 和 ZK_CLIENT_HOSTS。不過,設定 ZK_CLIENT_HOSTS 時,請省略 :observer 修飾符。

設定 Edge

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

在新節點上安裝 ZooKeeper

  1. 按照「安裝 Edge apigee-setup 公用程式」一文所述,在第一個節點上安裝 apigee-setup。
  2. 使用下列指令,在第一個節點上安裝 ZooKeeper:
    /opt/apigee/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. 使用新的設定檔重新執行設定指令:
    /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 節點,但重新啟動的順序不拘。

重新設定管理伺服器節點

在管理伺服器節點上:

  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

重新設定所有路由器

在所有路由器節點上:

  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 -f updatedConfigFile
  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 行中,應有一個節點指定為觀察者、一個節點指定為領導者,其餘節點則指定為追蹤者。