Edge for Private Cloud v4.18.01
Puoi installare API BaaS in più data center utilizzando una configurazione attiva/attiva. Questo documento descrive come aggiungere un data center BaaS a un data center BaaS esistente.
Aggiunta di un data center quando il cluster Cassandra è condiviso con Edge
Tutti i data center devono avere lo stesso numero di nodi Cassandra. Un'installazione di API BaaS può utilizzare il proprio cluster Cassandra o condividerne uno con Edge.
Se l'installazione di BaaS condivide un cluster Cassandra con Edge, devi aggiornare il server di gestione nel data center originale per configurarlo in modo che riconosca i nodi Cassandra nel nuovo data center.
Aggiornamento del data center esistente
L'aggiunta di un nuovo data center BaaS (data center 2) richiede l'esecuzione dei passaggi per installare e configurare il nuovo data center, ma richiede anche l'aggiornamento del data center BaaS originale (data center 1) . Queste modifiche sono necessarie perché:
- Stai aggiungendo nuovi nodi Cassandra nel nuovo data center che devono essere accessibili dal data center esistente.
- Devi configurare le informazioni di replica utilizzate dai nodi dello stack BaaS nel data center 1 in modo da includere le informazioni del data center 2. Non puoi eseguire questa configurazione finché non viene installato il data center 2.
Per eseguire questi aggiornamenti sul data center 1, aggiorna il file di configurazione originale utilizzato per installare il data center 1, quindi esegui nuovamente apigee-setup sui nodi Cassandra del data center 1. Se il cluster Cassandra per il data center 1 è condiviso con un'installazione Edge, devi aggiornare anche il server di gestione.
Creazione dei file di configurazione
Per installare il data center 1, utilizza la configurazione mostrata in Installazione di API BaaS. Il file di configurazione non deve includere informazioni sul data center 2 al momento dell'installazione del data center 1.Le informazioni vengono aggiunte al file di configurazione dopo l'installazione del data center 2.
Di seguito sono riportati i file di configurazione per il data center 2. Questo file di configurazione presuppone che tu stia installando dc-2 su 10 nodi, come descritto in Topologie di installazione. Modifica questo file di conseguenza se stai eseguendo l'installazione su 7 nodi.
Tieni presente che il file di configurazione del data center 2 (dc-2) contiene informazioni sul data center 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>"
Aggiungi un data center BaaS
- Installa il primo data center come descritto in Installazione di API BaaS. Questo documento include il file di configurazione che utilizzi per installare il data center 1.
- Crea il file di configurazione per dc-2 come descritto sopra.
- Installa Cassandra, come parte di un'installazione Edge esistente o come cluster autonomo per BaaS:
- Installa l'utilità Edge apigee-setup sul primo nodo Cassandra di dc-2, macchina 8, utilizzando la procedura con o senza internet. Per saperne di più, consulta Installa l'utilità apigee-setup di Edge.
- Al prompt dei comandi, esegui lo script di configurazione per installare Cassandra sul primo nodo:
> /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
L'opzione "-p c" specifica di installare Cassandra.
Il file di configurazione deve essere accessibile o leggibile dall'utente "apigee". - Ripeti i passaggi 3 e 4 per i restanti nodi Cassandra, le macchine 9 e 10, in dc-2.
- Sui nodi Cassandra di dc-1, modifica il file di configurazione per aggiungere i nodi Cassandra dal data center 2 in base a come hai installato Cassandra:
# List dc-1 nodes first, then dc-2,
# including Cassandra data center and rack suffix
CASS_HOSTS="$IP11:1,1 $IP12:1,1 $IP13:1,1 $IP8:2,1 $IP9:2,1 $IP10:2,1" - Sul primo nodo Cassandra di dc-1, esegui setup.sh con il nuovo file di configurazione dc-1 che include i nodi Cassandra di dc-2:
> /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile - Ripeti i passaggi 6 e 7 per i restanti nodi Cassandra in dc-1.
- Se ti connetti a un cluster Cassandra per dc-1 condiviso con Edge, aggiungi i nodi Cassandra dc-2 al file di configurazione per il nodo del server di gestione di dc-1 ed esegui setup.sh:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile - Aggiorna i keyspace di Cassandra con il fattore di replica corretto per i due data center. Devi eseguire questo passaggio una sola volta su qualsiasi server Cassandra in uno dei due data center:
Nota: i comandi riportati di seguito impostano tutti il fattore di replica su "3", indicando tre nodi Cassandra nel cluster. Modifica questo valore in base alle esigenze della tua installazione.- Avvia l'utilità cqlsh di Cassandra:
> /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP - Esegui i seguenti comandi CQL al prompt "cqlsh>" per impostare i livelli di replica per gli spazi delle chiavi Cassandra:
- cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE "Apigee_Baas" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE "Apigee_Baas_Locks" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE "system_auth" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- Visualizza i keyspace utilizzando il comando:
cqlsh> select * from system.schema_keyspaces; - Esci da cqlsh:
cqlsh> exit
- Avvia l'utilità cqlsh di Cassandra:
- Su tutti i nodi Cassandra in dc-2, esegui il comando rebuild, specificando il nome della regione di dc-1:
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1 - Esegui "nodetool status" su ogni nodo Cassandra e verifica che tutti i nodi Cassandra abbiano
"100%" per il valore "Owns":
> /opt/apigee/apigee-cassandra/bin/nodetool status - Installa BaaS in dc-2:
- Modifica il file di configurazione in modo da elencare solo i nodi Cassandra in dc-2:
# List dc-2 Cassandra nodes,
# omitting Cassandra data center and rack suffix
CASS_HOSTS="$IP8 $IP9 $IP10" - Installa Elasticsearch sui nodi 4, 5 e 6 di dc-2:
> /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile - Installa lo stack BaaS sui nodi 4, 5 e 6 di dc-2:
> /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile - Installa il portale BaaS sulla macchina 7:
> /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
- Modifica il file di configurazione in modo da elencare solo i nodi Cassandra in dc-2:
- Aggiorna i nodi dello stack BaaS nel data center 1:
- Sul primo nodo dello stack BaaS nel data center 1, modifica /opt/apigee/customer/application/usergrid.properties in un editor. Se il file non esiste, crealo.
- Aggiungi le seguenti proprietà a usergrid.properties:
# Same value as BAAS_CLUSTER_SEEDS in the dc-2 file di configurazione,
# without double quotes.
usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2
# Same value as BAAS_CASS_DC_LIST in the dc-2 config file.
usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2 - Ripeti i passaggi a e b sui restanti nodi dello stack BaaS.
- Riavvia tutti i nodi dello stack BaaS.
Nota: quando riavvii i nodi dello stack BaaS, riavviali nello stesso ordine in cui sono elencati in BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS elenca al massimo due nodi Stack. Dopo aver riavviato questi due nodi in ordine, puoi riavviare i nodi rimanenti in qualsiasi ordine.
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
- Aggiorna i valori del keyspace BaaS. Questi keyspace devono essere impostati per la replica al momento dell'installazione, ma non devono essere impostati in fase di esecuzione. La rimozione della replica consente anche di risparmiare memoria di Cassandra.
?Devi eseguire questo passaggio una sola volta su qualsiasi server Cassandra in uno dei due data center:- Avvia l'utilità cqlsh di Cassandra:
> /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP - Esegui i seguenti comandi CQL per impostare i livelli di replica per i keyspace di Cassandra:
- cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
- cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
- Visualizza i keyspace utilizzando il comando:
cqlsh> select * from system.schema_keyspaces; - Esci da cqlsh:
cqlsh> exit
- Avvia l'utilità cqlsh di Cassandra:
L'installazione del secondo data center è ora completata.
Dopo aver completato l'installazione e la configurazione dei due data center, puoi convalidare l'installazione utilizzando la seguente procedura:
- Su tutti i nodi BaaS Stack, controlla lo stato:
> curl 0:8080/status - Verifica che la chiamata API del token funzioni:
> curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}' - Prova ad accedere al portale BaaS per dc-2. Verifica che tutti i dati siano replicati in dc-2, ad esempio le raccolte create su dc-1.