Rechenzentrum hinzufügen

Edge for Private Cloud v. 4.17.01

In diesem Dokument wird beschrieben, wie Sie einem vorhandenen Rechenzentrum ein Rechenzentrum (auch Region genannt) hinzufügen.

Überlegungen vor dem Hinzufügen eines Rechenzentrums

Bevor Sie ein Rechenzentrum hinzufügen, müssen Sie wissen, wie Sie OpenLDAP-, ZooKeeper-, Cassandra- und Postgres-Server in den Rechenzentren konfigurieren. Außerdem müssen Sie dafür sorgen, dass die erforderlichen Ports zwischen den Knoten in den beiden Rechenzentren geöffnet sind.

  • OpenLDAP
    Jedes Rechenzentrum hat einen eigenen OpenLDAP-Server, für den die Replikation aktiviert ist. Wenn Sie das neue Rechenzentrum installieren, müssen Sie OpenLDAP für die Replikation konfigurieren. Außerdem müssen Sie den OpenLDAP-Server im vorhandenen Rechenzentrum für die Replikation neu konfigurieren.
  • ZooKeeper
    Geben Sie für das Attribut ZK_HOSTS für beide Rechenzentren die IP-Adressen oder DNS-Namen aller ZooKeeper-Knoten aus beiden Rechenzentren in derselben Reihenfolge an und markieren Sie alle Knoten mit dem Modifikator „:observer“. Knoten ohne den Modifikator „:observer“ werden als „Voter“ bezeichnet. Sie müssen eine ungerade Anzahl von „Wählern“ in Ihrer Konfiguration haben.

    In dieser Topologie ist der ZooKeeper-Host auf Host 9 der Beobachter:



    In der unten gezeigten Beispielkonfigurationsdatei ist Knoten 9 mit dem Modifikator „:observer“ gekennzeichnet, sodass Sie fünf Wähler haben: Knoten 1, 2, 3, 7 und 8.

    Geben Sie für die Property ZK_CLIENT_HOSTS für jedes Rechenzentrum die IP-Adressen oder DNS-Namen nur der ZooKeeper-Knoten im Rechenzentrum in derselben Reihenfolge für alle ZooKeeper-Knoten im Rechenzentrum an.
  • Cassandra
    Alle Rechenzentren müssen die gleiche Anzahl von Cassandra-Knoten haben.

    Achten Sie darauf, dass Sie für CASS_HOSTS für jedes Rechenzentrum alle Cassandra-IP-Adressen (nicht DNS-Namen) für beide Rechenzentren angeben. Listen Sie für Rechenzentrum 1 zuerst die Cassandra-Knoten in diesem Rechenzentrum auf. Listen Sie für Rechenzentrum 2 zuerst die Cassandra-Knoten in diesem Rechenzentrum auf. Listen Sie die Cassandra-Knoten für alle Cassandra-Knoten im Rechenzentrum in derselben Reihenfolge auf.

    Alle Cassandra-Knoten müssen das Suffix „:<d>,<r>“ haben, z. B. „<ip>:1,1 = Rechenzentrum 1 und Rack/Verfügbarkeitszone 1“ und „<ip>:2,1 = Rechenzentrum 2 und Rack/Verfügbarkeitszone 1“.
    Beispiel: „192.168.124.201:1,1 192.168.124.202:1,1 192.168.124.203:1,1 192.168.124.204:2,1 192.168.124.205:2,1 192.168.124.206:2,1“

    Der erste Knoten in Rack/Verfügbarkeitszone 1 jedes Rechenzentrums wird als Seed-Server verwendet. In diesem Bereitstellungsmodell sieht die Cassandra-Einrichtung so aus:


  • Postgres
    Standardmäßig installiert Edge alle Postgres-Knoten im Master-Modus. Wenn Sie jedoch mehrere Rechenzentren haben, konfigurieren Sie Postgres-Knoten für die Verwendung der Master-Standby-Replikation, sodass der Standby-Knoten bei einem Ausfall des Master-Knotens weiterhin Traffic verarbeiten kann. In der Regel konfigurieren Sie den primären Postgres-Server in einem Rechenzentrum und den Standby-Server im zweiten Rechenzentrum.

    Wenn das vorhandene Rechenzentrum bereits so konfiguriert ist, dass zwei Postgres-Knoten im Master-/Stand-by-Modus ausgeführt werden, müssen Sie im Rahmen dieses Verfahrens den vorhandenen Stand-by-Knoten deregistrieren und durch einen Stand-by-Knoten im neuen Rechenzentrum ersetzen.

    In der folgenden Tabelle sehen Sie die Postgres-Konfiguration vor und nach der Migration für beide Szenarien:

    Vorher

    Nachher

    Einzelner Master-Postgres-Knoten in dc-1

    Master-Postgres-Knoten in dc-1

    Standby-Postgres-Knoten in dc-2

    Master-Postgres-Knoten in dc-1

    Standby-Postgres-Knoten in dc-1

    Master-Postgres-Knoten in dc-1

    Standby-Postgres-Knoten in dc-2

    Registrierung des alten Standby-Postgres-Knotens in dc-1 aufheben

  • Portanforderungen
    Sie müssen dafür sorgen, dass die erforderlichen Ports zwischen den Knoten in den beiden Rechenzentren geöffnet sind. Ein Portdiagramm finden Sie unter Installationsanforderungen.

Aktualisierung des vorhandenen Rechenzentrums

Wenn Sie ein Rechenzentrum hinzufügen, müssen Sie die Schritte zum Installieren und Konfigurieren der neuen Rechenzentrumsknoten ausführen. Außerdem müssen Sie Knoten im ursprünglichen Rechenzentrum aktualisieren. Diese Änderungen sind erforderlich, da Sie im neuen Rechenzentrum neue Cassandra- und ZooKeeper-Knoten hinzufügen, die für das vorhandene Rechenzentrum zugänglich sein müssen. Außerdem müssen Sie OpenLDAP für die Replikation neu konfigurieren.

Konfigurationsdateien erstellen

Unten sehen Sie die Konfigurationsdateien für die unbeaufsichtigte Installation für die beiden Rechenzentren, wobei jedes Rechenzentrum sechs Knoten hat, wie unter Installationstopologien gezeigt. Beachten Sie, dass die Konfigurationsdatei für dc-1 zusätzliche Einstellungen hinzufügt:

  • Konfigurieren Sie OpenLDAP mit Replikation über zwei OpenLDAP-Knoten.
  • Fügen Sie die neuen Cassandra- und ZooKeeper-Knoten aus dc-2 der Konfigurationsdatei für dc-1 hinzu.
# Datacenter 1
IP1=IPorDNSnameOfNode1
IP2=IPorDNSnameOfNode2
IP3=IPorDNSnameOfNode3
IP7=IPorDNSnameOfNode7
IP8=IPorDNSnameOfNode8
IP9=IPorDNSnameOfNode9 
HOSTIP=$(hostname -i)
MSIP=$IP1
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=2
LDAP_SID=1
LDAP_PEER=$IP7
APIGEE_LDAPPW=secret
BIND_ON_ALL_INTERFACES=y
MP_POD=gateway-1
REGION=dc-1
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1 $IP7:2,1 $IP8:2,1 $IP9:2,1"
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com 
SMTPPASSWORD=smtppwd   
SMTPSSL=n
SMTPPORT=25
# Datacenter 2
IP1=IPorDNSnameOfNode1
IP2=IPorDNSnameOfNode2
IP3=IPorDNSnameOfNode3
IP7=IPorDNSnameOfNode7
IP8=IPorDNSnameOfNode8
IP9=IPorDNSnameOfNode9 
HOSTIP=$(hostname -i)
MSIP=$IP7
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=2
LDAP_SID=2
LDAP_PEER=$IP1
APIGEE_LDAPPW=secret
BIND_ON_ALL_INTERFACES=y
MP_POD=gateway-2
REGION=dc-2
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP7:2,1 $IP8:2,1 $IP9:2,1 $IP1:1,1 $IP2:1,1 $IP3:1,1"
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com 
SMTPPASSWORD=smtppwd   
SMTPSSL=n
SMTPPORT=25

Verfahren zum Hinzufügen eines neuen Rechenzentrums

In diesem Verfahren werden die Rechenzentren so benannt:

  • dc-1: das vorhandene Rechenzentrum
  • dc-2: das neue Rechenzentrum
  1. Führen Sie auf dc-1 setup.sh auf den ursprünglichen Cassandra-Knoten mit der neuen dc-1-Konfigurationsdatei aus, die die Cassandra-Knoten von dc-2 enthält:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. Führen Sie auf dc-1 setup.sh auf dem Management Server-Knoten noch einmal aus:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
  3. Installieren Sie auf dc-2 apigee-setup auf allen Knoten. Weitere Informationen finden Sie unter Edge-Dienstprogramm „apigee-setup“ installieren.
  4. Installieren Sie auf dc-2 Cassandra und ZooKeeper auf den entsprechenden Knoten:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. Führen Sie auf dc-2 den Befehl „rebuild“ auf allen Cassandra-Knoten aus und geben Sie den Regionsnamen von dc-1 an:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP rebuild dc-1
  6. Installieren Sie auf dc-2 den Management Server auf dem entsprechenden Knoten:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. Installieren Sie auf dc-2 die Router und Message Processors auf den entsprechenden Knoten:
    > /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  8. Installieren Sie auf dc-2 Qpid auf den entsprechenden Knoten:
    > /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  9. Installieren Sie in dc-2 Postgres auf dem entsprechenden Knoten:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  10. Richten Sie Postgres-Master/Standby für die Postgres-Knoten ein. Der Postgres-Knoten in dc-1 ist der Master und der Postgres-Knoten in dc-2 ist der Standby-Server.

    Hinweis: Wenn dc-1 bereits so konfiguriert ist, dass zwei Postgres-Knoten im Master-/Standby-Modus ausgeführt werden, verwenden Sie im Rahmen dieses Verfahrens den vorhandenen Master-Postgres-Knoten in dc-1 als Master und den Postgres-Knoten in dc-2 als Standby-Server. Später in diesem Verfahren melden Sie den vorhandenen Postgres-Standby-Server in dc-1 ab.
    1. Bearbeiten Sie auf dem Masterknoten in dc-1 die Konfigurationsdatei, um Folgendes festzulegen:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Aktivieren Sie die Replikation auf dem neuen Master:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. Bearbeiten Sie auf dem Standby-Knoten in dc-2 die Konfigurationsdatei, um Folgendes festzulegen:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. Beenden Sie auf dem Standby-Knoten in dc-2 den Server und löschen Sie dann alle vorhandenen Postgres-Daten:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
      > rm -rf /opt/apigee/data/apigee-postgresql/

      Hinweis: Bei Bedarf können Sie diese Daten vor dem Löschen sichern.
    5. Konfigurieren Sie den Standby-Knoten in dc-2:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  11. Aktualisieren Sie auf dc-1 die Analysekonfiguration und konfigurieren Sie die Organisationen.
    1. Rufen Sie auf dem Management Server-Knoten von dc-1 die UUID des Postgres-Knotens ab:
      > apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server --admin adminEmail --pwd adminPword --host localhost

      Die UUID wird am Ende der zurückgegebenen Daten angezeigt. Speichern Sie diesen Wert.

      Hinweis: Wenn dc-1 so konfiguriert ist, dass zwei Postgres-Knoten im Master-/Standby-Modus ausgeführt werden, werden in der Ausgabe zwei IP-Adressen und UUIDs angezeigt. Speichern Sie beide UUIDs. Anhand der IP-Adressen sollten Sie feststellen können, welche UUID für den Master- und welche für den Standby-Knoten gilt.
    2. Rufen Sie auf dem Management Server-Knoten von dc-2 die UUID des Postgres-Knotens ab, wie im vorherigen Schritt gezeigt. Speichern Sie diesen Wert.
    3. Ermitteln Sie auf dem Management Server-Knoten von dc-1 den Namen der Analyse- und Nutzergruppen. Viele der folgenden Befehle erfordern diese Informationen.
      Standardmäßig lautet der Name der Analysegruppe axgroup-001 und der Name der Nutzergruppe consumer-group-001. In der Konfigurationsdatei für die unbeaufsichtigte Installation für eine Region können Sie den Namen der Analytics-Gruppe mit dem Attribut AXGROUP festlegen.

      Wenn Sie sich bei den Namen der Analyse- und Nutzergruppen nicht sicher sind, können Sie sie mit dem folgenden Befehl anzeigen lassen:
      > apigee-adminapi.sh analytics groups list --admin adminEmail --pwd adminPword --host localhost

      Dieser Befehl gibt den Namen der Analysegruppe im Feld „name“ und den Namen der Nutzergruppe im Feld „consumer-groups“ zurück.
    4. Entfernen Sie auf dem Verwaltungsserverknoten von dc-1 den vorhandenen Postgres-Server aus der Analysegruppe:
      1. Entfernen Sie den Postgres-Knoten aus der Nutzergruppe:
        > apigee-adminapi.sh analytics groups consumer_groups datastores remove -g axgroup-001 -c consumer-group-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost

        Wenn dc-1 so konfiguriert ist, dass zwei Postgres-Knoten im Master-/Standby-Modus ausgeführt werden, entfernen Sie beide:
        > apigee-adminapi.sh analytics groups consumer_groups datastores remove -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" -Y --admin adminEmail --pwd adminPword --host localhost
      2. Entfernen Sie den Postgres-Knoten aus der Analytics-Gruppe:
        > apigee-adminapi.sh analytics groups postgres_server remove -g axgroup-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost

        Wenn dc-1 so konfiguriert ist, dass zwei Postgres-Knoten im Master-/Standby-Modus ausgeführt werden, entfernen Sie beide:
        > apigee-adminapi.sh analytics groups postgres_server remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail --pwd adminPword --host localhost
    5. Fügen Sie auf dem Management Server-Knoten von dc-1 die neuen Master-/Standby-Postgres-Server zur Analysegruppe hinzu:
      1. Fügen Sie beide Postgres-Server zur Analysegruppe hinzu:
        > apigee-adminapi.sh analytics groups postgres_server add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost

        Dabei entspricht UUID_1 dem primären Postgres-Knoten in dc-1 und UUID_2 dem Standby-Postgres-Knoten in dc-2.
      2. Fügen Sie die PG-Server der Nutzergruppe als Master/Standby hinzu:
        > apigee-adminapi.sh analytics groups consumer_groups datastores add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost
    6. Fügen Sie die Qpid-Server aus dc-2 der Analysegruppe hinzu:
      1. Rufen Sie auf dem Management Server-Knoten von dc-1 die UUIDs der Qpid-Knoten in dc-2 ab:
        > apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server --admin adminEmail --pwd adminPword --host localhost

        Die UUIDs werden am Ende der zurückgegebenen Daten angezeigt. Speichern Sie diese Werte.
      2. Auf dem Management-Server-Knoten von dc-1 Fügen Sie die Qpid-Knoten der Analysegruppe hinzu:
        >apigee-adminapi.sh analytics groups qpid_server add -g axgroup-001 -u UUID_1 --admin adminEmail --pwd Admin-Passwort --host localhost
        >apigee-adminapi.sh analytics groups qpid_server add -g axgroup-001 -u UUID_2 --admin adminEmail --pwd Admin-Passwort --host localhost
      3. Fügen Sie auf dem Management Server-Knoten von dc-1 die Qpid-Knoten zur Nutzergruppe hinzu:
        > apigee-adminapi.sh analytics groups consumer_groups consumers add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost
    7. Melden Sie den alten Postgres-Standby-Server von dc-1 ab und löschen Sie ihn:
      1. Melden Sie den vorhandenen Postgres-Standby-Server dc-1 ab:
        > apigee-adminapi.sh servers deregister -u UUID -r dc-1 -p analytics -t postgres-server -Y --admin adminEmail --pwd adminPword --host localhost

        Dabei ist UUID der alte Standby-Postgres-Knoten in dc-1.
      2. Löschen Sie den vorhandenen dc-1-Postgres-Standby-Server:
        Hinweis: Mit diesem Befehl wird der Postgres-Serverknoten nicht deinstalliert. Er wird nur aus der Liste der Edge-Knoten entfernt. Sie können Postgres später bei Bedarf vom Knoten deinstallieren.
        > apigee-adminapi.sh servers delete -u UUID --admin adminEmail --pwd adminPword --host localhost
  12. Aktualisieren Sie die Cassandra-Schlüsselbereiche mit dem richtigen Replikationsfaktor für die beiden Rechenzentren. Sie müssen diesen Schritt nur einmal auf einem beliebigen Cassandra-Server in einem der Rechenzentren ausführen:

    Hinweis: Mit den folgenden Befehlen wird der Replikationsfaktor auf „3“ gesetzt, was auf drei Cassandra-Knoten im Cluster hinweist. Ändern Sie diesen Wert nach Bedarf für Ihre Installation.
    1. Starten Sie das Cassandra-Dienstprogramm „cqlsh“:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Führen Sie die folgenden CQL-Befehle an der Eingabeaufforderung „cqlsh>“ aus, um die Replikationsstufen für Cassandra-Schlüsselbereiche festzulegen:
      1. cqlsh> ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. Rufen Sie die Schlüsselbereiche mit dem folgenden Befehl auf:
        cqlsh> select * from system.schema_keyspaces;
      4. Beenden Sie cqlsh:
        cqlsh> exit
  13. Führen Sie den folgenden nodetool-Befehl auf allen Cassandra-Knoten in dc-1 aus, um Speicher freizugeben:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP cleanup
  14. Für jede Organisation und jede Umgebung, die Sie in allen Rechenzentren unterstützen möchten:
    1. Fügen Sie auf dem Management Server-Knoten von dc-1 den neuen MP_POD zur Organisation hinzu:
      > apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 --admin adminEmail --pwd adminPword --host localhost

      Dabei ist gateway-2 der Name des Gateway-Pods, wie durch das Attribut MP_POD in der dc-2-Konfigurationsdatei definiert.
    2. Fügen Sie die neuen Message Processors der Organisation und der Umgebung hinzu:
      1. Rufen Sie auf dem Management Server-Knoten von dc-2 die UUIDs der Message Processor-Knoten in dc-2 ab:
        > apigee-adminapi.sh servers list -r dc-2 -p gateway-2 -t message-processor --admin adminEmail --pwd adminPword --host localhost

        Die UUIDs werden am Ende der zurückgegebenen Daten angezeigt. Speichern Sie diese Werte.
      2. Fügen Sie auf dem Management Server-Knoten von dc-1 für jeden Message Processor in dc-2 den Message Processor einer Umgebung für die Organisation hinzu:
        > apigee-adminapi.sh orgs envs servers add -o orgName -e envName -u UUID --admin adminEmail --pwd adminPword --host localhost
    3. Prüfen Sie auf dem Management Server-Knoten von dc-1 die Organisation:
      > apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName --admin adminEmail --pwd adminPword --host localhost

      Dabei ist apiProxyName der Name eines API-Proxys, der in der Organisation bereitgestellt wird.