添加 ZooKeeper 节点

Edge for Private Cloud v. 4.16.05

本文档介绍如何向现有 Edge for Private Cloud 安装添加三个新的 ZooKeeper 节点。

您可以向现有 Edge 安装添加一个或两个 ZooKeeper 节点,但必须确保始终有奇数个 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 
BIND_ON_ALL_INTERFACES=y
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 投票者和 1 个观察者。

请务必以相同的顺序将节点添加到 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. 使用“-p c”配置文件和新配置文件重新运行 setup.sh:
    > /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. 重启 Management Server:
    > /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,请安装:
    > sudo yum install nc
  2. 运行以下 nc 命令:
    > echo stat | nc localhost 2181
  3. 在每个 ZooKeeper 节点上重复执行第 1 步和第 2 步。
    在节点输出的 Mode 行中,一个节点应指定为观测者,一个节点指定为领导者,其余节点指定为跟随者。