新增 ZooKeeper 節點

Edge for Private Cloud 4.18.05

本文件說明如何在現有的 Edge for Private Cloud 安裝中新增三個 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/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

重新設定所有路由器

在所有 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 -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,請安裝 nc:
    sudo yum install nc
  2. 執行下列 nc 指令:
    echo stat | nc localhost 2181
  3. 針對每個 ZooKeeper 節點重複執行步驟 1 和 2。在節點輸出的 Mode 行中,一個節點應指定為觀察器,一個節點為領導節點,其餘節點則為追隨節點。