Как добавить узлы ZooKeeper

В этом документе рассказывается, как добавить три новых узла ZooKeeper в существующую установку Edge для частного облака.

Вы можете добавить один или два узла 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 указывает IP-адреса или имена DNS узлов ZooKeeper. IP-адреса или имена DNS должны быть указаны в одном и том же порядке на всех узлах ZooKeeper. В среде с несколькими центрами обработки данных перечислите все узлы ZooKeeper из обоих центров.
  • ZK_CLIENT_HOSTS указывает IP-адреса или имена DNS узлов ZooKeeper, используемых этим центром обработки данных. IP-адреса или имена DNS должны быть указаны в одном и том же порядке на всех узлах ZooKeeper.

    В установке с одним центром обработки данных это те же узлы, которые указаны в 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"

Отметьте последний узел в ZK_HOSTS модификатором :observer. Узлы без модификатора :observer называются голосующими. В конфигурации должно быть нечетное число голосующих. Таким образом, в этой конфигурации у вас будет пять голосующих серверов ZooKeeper и один наблюдатель.

Убедитесь, что узлы добавлены в свойства ZK_HOSTS и ZK_CLIENT_HOSTS в одном и том же порядке. Однако при настройке ZK_CLIENT_HOSTS не используйте модификатор :observer.

Как настроить Edge

После редактирования файла конфигурации необходимо выполнить все перечисленные ниже задачи.

Установите ZooKeeper на новые узлы

  1. Установите apigee-setup на первом узле, как описано в разделе Установка утилиты Edge 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. Повторите шаги 1 и 2 для остальных новых узлов ZooKeeper.

Как перенастроить существующие узлы 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. Перезапустите Message Processor:
    /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

Как проверить установку

Вы можете проверить установку новых узлов ZooKeeper, отправив команды на порт 2181 с помощью netcat (nc) или telnet. Дополнительную информацию о командах ZooKeeper можно найти на странице https://zookeeper.apache.org/doc/r3.8.3/zookeeperAdmin.html#sc_zkCommands.

Чтобы проверить AMP-страницу, выполните следующие действия:

  1. Если на узле ZooKeeper не установлено приложение nc, установите его:
    sudo yum install nc
  2. Выполните следующую команду nc:
    echo stat | nc localhost 2181
  3. Повторите шаги 1 и 2 на каждом узле ZooKeeper. В строке Mode выходных данных для узлов один узел должен быть назначен наблюдателем, один – лидером, а остальные – подчиненными.