Instalacja wielu centrów danych dla interfejsu API BaaS

Edge for Private Cloud w wersji 4.18.01

Interfejs API BaaS możesz zainstalować w kilku centrach danych, korzystając z konfiguracji aktywnej/aktywnej. Ten dokument opisuje, jak dodać centrum danych BaaS do istniejących danych BaaS pomocy.

Dodawanie centrum danych, gdy klaster Cassandra jest udostępniany w usłudze Edge

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

Jeśli instalacja BaaS dzieli klaster Cassandra z Edge, musisz zaktualizować serwera zarządzania w oryginalnym centrum danych, tak aby rozpoznawał węzły Cassandra w do nowego centrum danych.

Aktualizacja istniejącego centrum danych

Dodanie nowego centrum danych BaaS (centrum danych 2) wymaga wykonania czynności związanych z instalacją i konfiguracją nowego centrum danych, ale także z aktualizacją 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 do istniejącego centrum danych.
  • Musisz skonfigurować informacje o replikacji, których używają węzły stosu BaaS w danych centrum 1, aby uwzględnić informacje z centrum danych 2. Nie możesz wykonać tej konfiguracji do jest zainstalowane centrum danych 2.

Aby przeprowadzić te aktualizacje w centrum danych 1, zaktualizuj oryginalny plik konfiguracji użyty do zainstalowania centrum danych 1, a następnie ponownie uruchom polecenie apigee-setup na węzłach Cassandra w centrum danych 1. Jeśli klaster Cassandra dla centrum danych 1 jest współużytkowany z instalacją Edge, musisz też zaktualizować serwer zarządzania.

Tworzenie plików konfiguracji

Aby zainstalować centrum danych 1, skorzystaj z konfiguracji opisanej w sekcji Instalacja BaaS API. Podczas instalacji centrum danych 1. nie musi on zawierać żadnych informacji o centrum danych 2. Dodawanie informacji do pliku konfiguracji następuje po zainstalowaniu centrum danych 2.

Poniżej widać pliki konfiguracji dla centrum danych 2. Ten plik konfiguracji zakłada, że instalujesz dc-2 na 10 węzłach, zgodnie z opisem w sekcji Topologie instalacji. W razie instalacji na 7 węzłach zmodyfikuj ten plik.

Zwróć uwagę, że plik konfiguracji 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
SMTPMAILFROM="My Company <myco@company.com>"

Dodawanie centrum danych BaaS

  1. Zainstaluj pierwsze centrum danych w sposób opisany na stronie Instalacja API BaaS. Dokument ten zawiera plik konfiguracji, którego używasz do instalacji centrum danych 1.
  2. Utwórz plik konfiguracyjny dla dc-2 w sposób opisany powyżej.
  3. Zainstaluj Cassandra jako część istniejącej instalacji Edge lub jako samodzielny klaster BaaS:
    1. Zainstaluj narzędzie apigee-setup Edge na pierwszym węźle Cassandra w dc-2, maszyna 8, za pomocą internetu lub procedury bez internetu. Więcej informacji znajdziesz w artykule Instalowanie narzędzia apigee-setup w Edge.
    2. W wierszu poleceń uruchom skrypt konfiguracji, aby zainstalować Cassandra na pierwszym węźle:
      > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      Opcja „-p c” wskazuje, że należy zainstalować Cassandra.

      Plik konfiguracji musi być dostępny lub 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 dodaj do pliku konfiguracji węzły Cassandra centrum danych 2 w zależności od sposobu instalacji systemu Cassandra:

    # Najpierw wyświetl węzły dc-1, a później dc-2
    # w tym centrum danych i sufiks szafy Cassandra
    CASS_HOSTS="$IP11:1,1 $IP12:1,1 $IP13:1,1 $IP8:2,1 $IP9:2,1 $IP10:2,1"
  5. W pierwszym węźle Cassandra dc-1 uruchom plik setup.sh z nowym plikiem konfiguracyjnym dc-1, który obejmuje węzły Cassandra z dc-2:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. Powtórz kroki 6 i 7 w przypadku pozostałych węzłów Cassandra w dc-1.
  7. Jeśli łączysz się z klastrem Cassandra w dc-1 udostępnionym w usłudze Edge,

    dodaj węzły Cassandra dc-2 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 configFile
  8. Zaktualizuj przestrzenie kluczy Cassandra, podając prawidłowy współczynnik replikacji dla 2 centrów danych. Ty wystarczy wykonać ten krok tylko raz na dowolnym serwerze Cassandra w dowolnym centrum danych:

    Uwaga: podane niżej polecenia ustawiają współczynnik replikacji na „3”, co oznacza, że 3 węzły Cassandra. W razie potrzeby zmień tę wartość w przypadku danej instalacji.
    1. Uruchom narzędzie Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Aby ustawić poziomy replikowania w kluczowych przestrzeniach danych Cassandra, uruchom te polecenia CQL w wierszu poleceń „cqlsh>”:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh&gt; ALTER KEYSPACE "Apigee_Baas_Locks" Z replikacją = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cqlsh&gt; ALTERNATYWNY PRZESTRZEŃ KLUCZOWY „system_traces” Z replikacją = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTER KEYSPACE "system_auth" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. Wyświetl przestrzenie klawiszy za pomocą tego polecenia:
        cqlsh&gt; wybierz * z system.schema_keyspaces;
      7. Zamknij cqlsh:
        cqlsh> exit
  9. Na wszystkich węzłach Cassandra w regionie dc-2 uruchom polecenie rebuild, podając nazwę regionu dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. Uruchom polecenie „nodetool status” na każdym węźle Cassandra i sprawdź, czy wszystkie węzły Cassandra mają wartość „Owns” równą „100%”:
    > /opt/apigee/apigee-cassandra/bin/nodetool status
  11. Zainstaluj BaaS w dc-2:
    1. Zmień plik konfiguracji, aby zawierał tylko węzły Cassandra w dc-2:
      # Wyświetla węzły Cassandra w dc-2,
      # pomijając sufiks centrum danych i racka Cassandra
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. Zainstaluj ElasticSearch na węzłach 4, 5 i 6 w dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. Zainstaluj pakiet BaaS na węzłach 4, 5 i 6 w dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. Zainstaluj portal BaaS na maszynie 7:
      > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. Aktualizacja węzłów stosu BaaS w centrum danych 1:
    1. W pierwszym węźle stosu BaaS w centrum danych 1 edytuj /opt/apigee/customer/application/usergrid.properties w edytorze. Jeśli plik nie istnieje, utwórz go.
    2. Dodaj te właściwości do pliku usergrid.properties:
      # Ta sama wartość co BAAS_CLUSTER_SEEDS w pliku konfiguracji dc-2,
      # bez cudzysłowów.
      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: podczas ponownego uruchamiania węzłów stosu BaaS uruchom je ponownie w tym samym w kolejności, w jakiej są wymienione w BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS listy w dla większości 2 węzłów stosu. Po uruchomieniu tych 2 węzłów w kolejności możesz uruchomić pozostałe węzły w dowolnej kolejności.

      &gt; /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  13. Zaktualizuj wartości kluczy BaaS. Przestrzeń kluczy musi być skonfigurowana do replikacji w momencie instalacji, ale nie w czasie wykonywania. Usunięcie replikacji spowoduje też zaoszczędzenie pamięci Cassandra.

    Wystarczy wykonać ten krok tylko raz na dowolnym serwerze Cassandra w dowolnym centrum danych:
    1. Uruchom narzędzie Cassandra cqlsh:
      &gt; /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Aby ustawić poziomy replikacji dla kluczy przestrzeni nazw Cassandra, wykonaj te polecenia CQL:
      1. cqlsh&gt; ALTERNATYWNY PRZESTRZEŃ KLUCZOWY &quot;Apigee_Baas_dc_1&quot; Z replikacją = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. Wyświetl przestrzenie klawiszy za pomocą tego polecenia:
        cqlsh&gt; wybierz * z system.schema_keyspaces;
      4. Zamknij cqlsh:
        cqlsh> exit

Instalacja drugiego centrum danych została zakończona.

Po zakończeniu instalacji i konfiguracji 2 centrów danych możesz zweryfikować instalację, wykonując te czynności:

  1. Sprawdź stan wszystkich węzłów stosu BaaS:
    &gt; curl 0:8080/stan
  2. Wywołanie interfejsu API tokena sprawdź, czy działa:
    &gt; curl – X POST &quot;http://localhost:8080/management/token&quot; -d &#39;{&quot;grant_type&quot;:&quot;password&quot;, "username":"adminEmail","password":"pWord"}'
  3. Spróbuj zalogować się w portalu BaaS dla dc-2. Sprawdź, czy wszystkie dane są replikowane w dc-2, na przykład kolekcje utworzone w dc-1.