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

Edge for Private Cloud версии 4.16.05

В этом документе описывается, как добавить три новых узла 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 
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 – 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 называются голосующими. В конфигурации должно быть нечетное количество голосующих. Таким образом, в этой конфигурации у вас есть 5 голосующих ZooKeeper и один наблюдатель.

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

Настройка Edge

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

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

  1. Установите apigee-setup на первом узле, как описано в разделе Установка утилиты apigee-setup для Edge.
  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. Повторно запустите setup.sh с профилем -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. Порядок перезапуска не имеет значения.

Повторно настройте узел сервера управления.

На узле сервера управления:

  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

Перенастройте все процессоры сообщений.

На всех узлах Message Processor:

  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 можно найти на странице http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands.

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

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