Instalacja wielu centrów danych dla interfejsu API BaaS

Edge for Private Cloud wer. 4.17.01

Interfejs API BaaS możesz zainstalować w wielu centrach danych, używając aktywnej/aktywnej konfiguracji. Ten dokument opisuje, jak dodać centrum danych BaaS do istniejącego centrum danych BaaS.

Dodawanie centrum danych, gdy klaster Cassandra jest udostępniany Edge

Wszystkie centra danych muszą mieć tę samą liczbę węzłów Cassandra. Instalacja interfejsu API BaaS może używać własnego klastra Cassandra lub współużytkować klaster Cassandra z Edge.

Jeśli instalacja BaaS współdzieli klaster Cassandra z Edge, musisz zaktualizować serwer zarządzania w pierwotnym centrum danych, aby skonfigurować go tak, aby rozpoznawał węzły Cassandra w nowym centrum danych.

Aktualizowanie istniejącego centrum danych

Dodanie nowego centrum danych BaaS (centrum danych 2) wymaga wykonania pewnych czynności w celu zainstalowania i skonfigurowania nowego centrum danych, ale wymaga też aktualizacji oryginalnego centrum danych BaaS (centrum danych 1) . Te zmiany są konieczne, ponieważ:

  • Dodajesz w nowym centrum danych nowe węzły Cassandra, które muszą być dostępne dla istniejącego centrum danych.
  • Musisz skonfigurować informacje o replikacji używane przez węzły stosu BaaS w centrum danych 1, aby uwzględniać informacje z centrum danych 2. Nie możesz przeprowadzić tej konfiguracji, dopóki nie zostanie zainstalowane centrum danych 2.

Aby wykonać te aktualizacje w centrum danych 1, musisz zaktualizować oryginalny plik konfiguracji użyty do zainstalowania centrum danych 1, a następnie ponownie uruchomić apigee-setup w węzłach Cassandra centrum danych 1. Jeśli klaster Cassandra dla centrum danych 1 jest udostępniany instalacji brzegowej, musisz też zaktualizować serwer zarządzania.

Tworzenie plików konfiguracji

Aby zainstalować centrum danych 1, użyj konfiguracji przedstawionej w artykule Instalacja interfejsu API BaaS. Plik konfiguracji nie musi zawierać żadnych informacji o centrum danych 2 w momencie instalacji centrum danych. 1. Informacje o centrum danych dodajesz do pliku konfiguracji po zainstalowaniu centrum danych 2.

Poniżej widać pliki konfiguracji centrum danych 2. W tym pliku konfiguracji zakładamy, że instalujesz dc-2 w 10 węzłach zgodnie z opisem w sekcji Topologie instalacji. Jeśli instalacja jest przeprowadzana w 7 węzłach, odpowiednio zmodyfikuj ten plik.

Zwróć uwagę, że plik konfiguracyjny centrum danych 2 (dc-2) zawiera informacje o centrum danych 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

Dodawanie centrum danych BaaS

  1. Zainstaluj pierwsze centrum danych zgodnie z opisem w sekcji Instalacja interfejsu API BaaS. Dokument ten zawiera plik konfiguracji, którego używasz do zainstalowania centrum danych. 1.
  2. Utwórz plik konfiguracyjny dc-2 w sposób opisany powyżej.
  3. Zainstaluj Cassandra w ramach istniejącej instalacji Edge lub jako samodzielny klaster dla BaaS:
    1. Zainstaluj narzędzie Edge apigee-setup w pierwszym węźle Cassandra na dc-2 na komputerze 8, korzystając z procedury z internetu lub bez połączenia z internetem. Więcej informacji znajdziesz w artykule o instalowaniu narzędzia Edge apigee-setup.
    2. W wierszu polecenia uruchom skrypt konfiguracji, aby zainstalować Cassandra w pierwszym węźle:
      > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      Opcja „-p c” określa, czy chcesz zainstalować Cassandra.

      Plik konfiguracji musi być dostępny i czytelny dla użytkownika „apigee”.
    3. Powtórz kroki 3 i 4 dla pozostałych węzłów Cassandra, maszyn 9 i 10 w dc-2.
  4. W węzłach Cassandra dc-1 zmodyfikuj plik konfiguracji w taki sposób, aby dodać węzły Cassandra z centrum danych 2 w zależności od sposobu, w jaki zainstalowano Cassandra:

    # najpierw lista węzłów dc-1, a następnie dc-2,
    # z uwzględnieniem centrum danych Cassandra i sufiksu rack
    CASS_HOSTS="$IP11:IP1,1 $IP12:
  5. Na pierwszym węźle Cassandra w dc-1 uruchom plik setup.sh z nowym plikiem konfiguracyjnym dc-1, który zawiera węzły Cassandra z dc-2:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. Powtórz kroki 6 i 7 dla pozostałych węzłów Cassandra w dc-1.
  7. Jeśli łączysz się z klastrem Cassandra na potrzeby dc-1 współdzielonego przez Edge, dodaj węzły dc-2 Cassandra do pliku konfiguracyjnego węzła serwera zarządzania dc-1 i uruchom polecenie setup.sh:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f config
  8. Zaktualizuj przestrzenie kluczy Cassandra, podając prawidłowy współczynnik replikacji dla 2 centrów danych. Tę czynność wystarczy wykonać tylko raz na dowolnym serwerze Cassandra w dowolnym centrum danych:

    Uwaga: wszystkie polecenia poniżej ustawiają współczynnik replikacji na 3, co wskazuje na 3 węzły Cassandra w klastrze. W razie potrzeby zmień tę wartość.
    1. Uruchom narzędzie Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Wykonaj następujące polecenia CQL w wierszu „cqlsh>”, aby ustawić poziomy replikacji przestrzeni kluczy 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" WITH replikacja = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTER KEYSPACE "system_auth" WITH replikacja = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. Wyświetl przestrzenie kluczy za pomocą polecenia:
        cqlsh> select * from system.schema_keyspaces;
      7. Zamknij cqlsh:
        cqlsh> exit
  9. We wszystkich węzłach Cassandra w dc-2 uruchom polecenie odbudowywania, podając nazwę regionu dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. Uruchom narzędzie „nodetool status” (stan węzła) w każdym węźle Cassandra i sprawdź, czy wszystkie węzły Cassandra mają wartość „100%” dla wartości „właściciel”:
    > /opt/apigee/apigee-cassandra/bin/nodetool
  11. Zainstaluj BaaS w dc-2:
    1. W pliku konfiguracyjnym wyświetl tylko węzły Cassandra w dc-2:
      # lista węzłów dc-2 Cassandra,
      # pominiętych centrum danych Cassandra i sufiks stojaka
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. Zainstaluj ElasticSearch w węzłach 4, 5 i 6 dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. Zainstaluj stos BaaS w węzłach 4, 5 i 6 sieci dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. Zainstaluj BaaS Portal na komputerze 7:
      > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. Aktualizowanie węzłów stosu BaaS w centrum danych 1:
    1. W pierwszym węźle stosu BaaS w centrum danych 1 edytuj plik /opt/apigee/customer/application/usergrid.properties w edytorze. Jeśli plik nie istnieje, utwórz go.
    2. Do pliku usergrid.properties dodaj te właściwości:
      # Ta sama wartość co wartość BAAS_CLUSTER_SEEDS w pliku konfiguracyjnym dc-2,
      # bez cudzysłowu.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # Ta sama wartość co BAAS_CASS_DC_LIST w pliku konfiguracyjnym dc-2.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. Powtórz kroki a i b w pozostałych węzłach stosu BaaS.
    4. Ponownie uruchom wszystkie węzły stosu BaaS.

      Uwaga: po ponownym uruchomieniu węzłów stosu BaaS uruchom je ponownie w tej samej kolejności, w jakiej są wymienione w klastrze BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS pokazuje maksymalnie 2 węzły stosu. Po ponownym uruchomieniu tych 2 węzłów w określonej kolejności możesz ponownie uruchomić pozostałe węzły w dowolnej kolejności.

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  13. Aktualizowanie wartości przestrzeni kluczy BaaS. Tę przestrzeń kluczy należy ustawić pod kątem replikacji w momencie instalacji, ale nie musi być ona w czasie działania. Usunięcie replikacji powoduje też zapisanie pamięci Cassandra.

    Ten krok wystarczy wykonać tylko raz na dowolnym serwerze Cassandra w dowolnym centrum danych:
    1. Uruchom narzędzie Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Uruchom te polecenia CQL, aby ustawić poziomy replikacji przestrzeni kluczy Cassandra:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH replikacja = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. Wyświetl przestrzenie kluczy za pomocą polecenia:
        cqlsh> select * from system.schema_keyspaces;
      4. Wyjdź z cqlsh:
        cqlsh> Zamknij

Zakończono instalację drugiego centrum danych.

Po zakończeniu instalacji i konfiguracji obu centrów danych możesz zweryfikować instalację, korzystając z tej procedury:

  1. Sprawdź stan wszystkich węzłów stosu BaaS:
    > curl 0:8080/status
  2. Wywołanie interfejsu API tokena sprawdzania działa:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}'
  3. Zaloguj się w BaaS Portal w dc-2. Sprawdź, czy w dc-2 są replikowane wszystkie dane, takie jak kolekcje utworzone dc-1.