Установка нескольких центров обработки данных для API BaaS

Edge для частного облака v. 4.17.05

Вы можете установить API BaaS в нескольких центрах обработки данных, используя активную/активную конфигурацию. В этом документе описывается, как добавить центр обработки данных BaaS к существующему центру обработки данных BaaS.

Добавление центра обработки данных, когда кластер Cassandra используется совместно с Edge

Все центры обработки данных должны иметь одинаковое количество узлов Cassandra. Установка API BaaS может использовать собственный кластер Cassandra или использовать кластер Cassandra совместно с Edge.

Если установка BaaS использует кластер Cassandra совместно с Edge, вам необходимо обновить сервер управления в исходном центре обработки данных, чтобы настроить его для распознавания узлов Cassandra в новом центре обработки данных.

Обновление существующего дата-центра

Добавление нового центра обработки данных BaaS (центр обработки данных 2) требует выполнения действий по установке и настройке нового центра обработки данных, но также требует обновления исходного центра обработки данных BaaS (центр обработки данных 1). Эти изменения необходимы, потому что:

  • Вы добавляете новые узлы Cassandra в новый центр обработки данных, которые должны быть доступны для существующего центра обработки данных.
  • Вам необходимо настроить информацию репликации, используемую узлами стека BaaS в центре обработки данных 1, для включения информации из центра обработки данных 2. Вы не сможете выполнить эту настройку, пока не будет установлен центр обработки данных 2.

Чтобы выполнить эти обновления в центре обработки данных 1, вы обновляете исходный файл конфигурации, использованный для установки центра обработки данных 1, а затем повторно запускаете apigee-setup на узлах Cassandra центра обработки данных 1. Если кластер Cassandra для центра обработки данных 1 используется совместно с Edge установки, вам также необходимо обновить Сервер управления.

Создание файлов конфигурации

Для установки центра обработки данных 1 используйте конфигурацию, показанную в разделе Установка API BaaS . Файл конфигурации не обязательно должен содержать какую-либо информацию о центре обработки данных 2 на момент установки центра обработки данных 1. Вы добавляете информацию в файл конфигурации после установки центра обработки данных 2.

Ниже показаны файлы конфигурации для центра обработки данных 2. В этом файле конфигурации предполагается, что вы устанавливаете dc-2 на 10 узлах, как описано в разделе «Топологии установки» . Измените этот файл соответствующим образом, если вы устанавливаете на 7 узлов.

Обратите внимание, что файл конфигурации для центра обработки данных 2 (dc-2) содержит информацию о центре обработки данных 1 (dc-1):

# Specify IP address or DNS name of node for dc-2.
IP1=192.168.1.1   # ElasticSearch
IP2=192.168.1.2   # ElasticSearch
IP3=192.168.1.3   # ElasticSearch
IP4=192.168.1.4   # API BaaS Stack
IP5=192.168.1.5   # API BaaS Stack
IP6=192.168.1.6   # API BaaS Stack
IP7=192.168.1.7   # API BaaS Portal
IP8=192.168.1.8   # Cassandra dc-2 (shared with Edge or standalone)
IP9=192.168.1.9   # Cassandra dc-2 (shared with Edge or standalone)
IP10=192.168.1.10  # Cassandra dc-2 (shared with Edge or standalone)

# Specify node information for dc-1
IP11=192.168.1.11   # Cassandra dc-1 (shared with Edge or standalone)
IP12=192.168.1.12   # Cassandra dc-1 (shared with Edge or standalone)
IP13=192.168.1.13   # Cassandra dc-1 (shared with Edge or standalone)
IP14=192.168.1.14   # API BaaS Stack
IP15=192.168.1.15   # API BaaS Stack

# Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
HOSTIP=$(hostname -i)

# Define the API BaaS administrator account.  
AS_ADMIN="superuser"    # User name - default is "superuser".
AS_ADMIN_EMAIL=stackAdmin@email.com
AS_PASSWD=stackAdminPWord

# Specify Cassandra data center and rack suffix.
# List dc-2 nodes first, then dc-1.
# Must use IP addresses for CASS_HOSTS, not DNS names.
# CASS_HOSTS="$IP8:2,1 $IP9:2,1 $IP10:2,1 $IP11:1,1 $IP12:1,1 $IP13:1,1"

# Specify the Cassandra region.
REGION=dc-2

# Cassandra uname/pword.
# Even if Cassandra authentication is disabled,
# you must still pass values for these properties.
CASS_USERNAME=cassandra    # Default value
CASS_PASSWORD=cassandra    # Default value

# Specify BaaS Cassandra connection information.
# Specify the data center name as dc-2.
BAAS_CASS_LOCALDC=dc-2    

# Specify both data centers.
BAAS_CASS_DC_LIST=dc-1,dc-2

# Replication is in the form "dataCenterName:#CassandraNodes". 
# Specify both data centers.
BAAS_CASS_REPLICATION=dc-1:3,dc-2:3

# Defines the initial contact points for members of the BaaS cluster. 
# Specify the IP address of no more than two Stack nodes per data center.
# Specify both data centers. 
BAAS_CLUSTER_SEEDS="dc-1:$IP14,dc-1:$IP15,dc-2:$IP4,dc-2:$IP5"

# ElasticSearch IPs or DNS names, separated by spaces, for dc-2.
ES_HOSTS="$IP1 $IP2 $IP3"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas" 

# URL and port of the load balancer for the API BaaS Stack nodes, 
# or IP/DNS and port 8080 of a single Stack node with no load balancer.
BAAS_USERGRID_URL=http://myloadbalancer:8443

# API BaaS Portal information.
# URL and port number of load balancer, if there is one in front of the Portal,
# or the URL and port of the Portal node.  
BAAS_PORTAL_URL="http://$IP7:9000"

# Portal port. Default value is 9000.
BAAS_PORTAL_LISTEN_PORT=9000 

# SMTP information. BaaS requires an SMTP server.
SMTPHOST=smtp.gmail.com
SMTPPORT=465
SMTPUSER=your@email.com
SMTPPASSWORD=yourEmailPassword
SMTPSSL=y

Добавить дата-центр BaaS

  1. Установите первый центр обработки данных, как описано в разделе Установка API BaaS . Этот документ включает файл конфигурации, который вы используете для установки центра обработки данных 1.
  2. Создайте файл конфигурации для dc-2, как описано выше.
  3. Установите Cassandra либо как часть существующей установки Edge, либо как отдельный кластер для BaaS:
    1. Установите утилиту Edge apigee-setup на первом узле Cassandra компьютера dc-2, машина 8, используя процедуру через Интернет или без Интернета. Дополнительные сведения см. в разделе Установка утилиты Edge apigee-setup .
    2. В командной строке запустите сценарий установки, чтобы установить Cassandra на первый узел:
      > /opt/apigee/apigee-setup/bin/setup.sh -pc -f файл конфигурации

      Опция «-p c» указывает на установку Cassandra.

      Файл конфигурации должен быть доступен или доступен для чтения пользователю «apigee».
    3. Повторите шаги 3 и 4 для остальных узлов Cassandra, машин 9 и 10, в dc-2.
  4. На узлах Cassandra DC-1 отредактируйте файл конфигурации, чтобы добавить узлы Cassandra из центра обработки данных 2 в зависимости от того, как вы установили Cassandra:

    # Сначала перечислите узлы dc-1, затем dc-2,
    # включая центр обработки данных Cassandra и суффикс стойки
    CASS_HOSTS="$IP11:1,1 $IP12:1,1 $IP13:1,1 $IP8:2,1 $IP9:2,1 $IP10:2,1"
  5. На первом узле Cassandra dc-1 запустите setup.sh с новым файлом конфигурации dc-1, который включает узлы Cassandra из dc-2:
    > /opt/apigee/apigee-setup/bin/setup.sh -pc -f файл конфигурации
  6. Повторите шаги 6 и 7 для остальных узлов Cassandra в DC-1.
  7. Если вы подключаетесь к кластеру Cassandra для dc-1, совместно используемого с Edge , добавьте узлы Cassandra dc-2 в файл конфигурации для узла Management Server dc-1 и запустите setup.sh :
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f файл конфигурации
  8. Обновите пространства ключей Cassandra, указав правильный коэффициент репликации для двух центров обработки данных. Вам нужно выполнить этот шаг только один раз на любом сервере Cassandra в любом центре обработки данных:

    Примечание . Приведенные ниже команды устанавливают коэффициент репликации на «3», что указывает на три узла Cassandra в кластере. Измените это значение, если это необходимо для вашей установки.
    1. Запустите утилиту Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Выполните следующие команды CQL в командной строке «cqlsh>», чтобы установить уровни репликации для пространств ключей Cassandra:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" С репликацией = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas" С репликацией = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3', 'dc-2': '3' };
      3. cqlsh> ALTER KEYSPACE "Apigee_Baas_Locks" С репликацией = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cqlsh> ALTER KEYSPACE "system_traces" С репликацией = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTER KEYSPACE "system_auth" С репликацией = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. Просмотрите пространства ключей с помощью команды:
        cqlsh> выберите * из system.schema_keyspaces;
      7. Выйти из cqlsh:
        cqlsh> выход
  9. На всех узлах Cassandra в dc-2 запустите команду rebuild, указав имя региона dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. Запустите «nodetool status» на каждом узле Cassandra и убедитесь, что все узлы Cassandra имеют значение «100%» для значения «Владеет»:
    > /opt/apigee/apigee-cassandra/bin/nodetool статус
  11. Установите BaaS в DC-2:
    1. Отредактируйте файл конфигурации, чтобы в нем были указаны только узлы Cassandra в dc-2:
      # Список узлов Cassandra dc-2,
      # опущен центр обработки данных Cassandra и суффикс стойки
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. Установите ElasticSearch на узлах 4, 5 и 6 DC-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -pe -f файл конфигурации
    3. Установите стек BaaS на узлах 4, 5 и 6 DC-2 :
      > /opt/apigee/apigee-setup/bin/setup.sh -pb -f файл конфигурации
    4. Установите портал BaaS на машине 7:
      > /opt/apigee/apigee-setup/bin/setup.sh -pp -f файл конфигурации
  12. Обновите узлы стека BaaS в центре обработки данных 1:
    1. На первом узле стека BaaS в центре обработки данных 1 отредактируйте /opt/apigee/customer/application/usergrid.properties в редакторе. Если файл не существует, создайте его.
    2. Добавьте следующие свойства в usergrid.properties :
      # То же значение, что и BAAS_CLUSTER_SEEDS в файле конфигурации dc-2,
      # без двойных кавычек.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # То же значение, что и BAAS_CASS_DC_LIST в файле конфигурации dc-2.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. Повторите шаги a и b на остальных узлах стека BaaS.
    4. Перезапустите все узлы стека BaaS.

      Примечание . При перезапуске узлов стека BaaS перезапускайте их в том же порядке, в котором они перечислены в BAAS_CLUSTER_SEEDS . BAAS_CLUSTER_SEEDS перечисляет не более двух узлов стека. После перезапуска этих двух узлов по порядку вы можете перезапустить оставшиеся узлы в любом порядке.

      > /opt/apigee/apigee-service/bin/apigee-service перезапуск baas-usergrid
  13. Обновите значения пространства ключей BaaS. Это пространство ключей должно быть настроено для репликации во время установки, но не обязательно во время выполнения. Удаление репликации также экономит память Cassandra.

    Вам нужно выполнить этот шаг только один раз на любом сервере Cassandra в любом центре обработки данных:
    1. Запустите утилиту Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Выполните следующие команды CQL, чтобы установить уровни репликации для пространств ключей Cassandra:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" С репликацией = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" С репликацией = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. Просмотрите пространства ключей с помощью команды:
        cqlsh> выберите * из system.schema_keyspaces;
      4. Выйти из cqlsh:
        cqlsh> выход

Установка второго центра обработки данных завершена.

После завершения установки и настройки двух центров обработки данных вы можете проверить установку, выполнив следующую процедуру:

  1. На всех узлах BaaS Stack проверьте статус:
    > локон 0:8080/статус
  2. Проверьте, работает ли вызов API токена:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"пароль", "имя пользователя":" adminEmail ","пароль":" pWord "}'
  3. Попробуйте войти на портал BaaS для dc-2. Убедитесь, что все данные реплицируются в DC-2, например коллекции, созданные в DC-1.