1. Introduzione
Private Service Connect (PSC) semplifica il modo in cui i servizi vengono utilizzati in modo sicuro e privato. Questo modello semplifica drasticamente l'architettura di rete consentendo ai consumer di servizi di connettersi privatamente ai producer di servizi in diverse organizzazioni ed elimina la necessità di peering virtual private cloud. La Figura 1 illustra gli attributi del peering VPC e PSC.
Figura1.
Come consumer di servizi, offre la flessibilità di scegliere come allocare gli IP privati ai servizi, eliminando al contempo il carico della gestione degli intervalli di subnet per i VPC dei producer. Ora puoi semplicemente assegnare un IP virtuale scelto dal tuo VPC a questo servizio utilizzando una connessione ai servizi.
In questo codelab, creerai un'architettura completa di Private Service Connect che illustra l'utilizzo dell'accesso globale di PSC con l'atlante MongoDB.
L'accesso globale consente ai client di connettersi a Private Service Connect (PSC) oltre i confini regionali. Ciò è utile per creare un'alta disponibilità tra i servizi gestiti ospitati in più regioni o per consentire ai client di accedere a un servizio che non si trova nella stessa regione del client.
2. Abilitazione dell'accesso globale
L'accesso globale è una funzionalità facoltativa configurata nella regola di forwarding lato consumer. Il comando seguente mostra come viene configurato:
gcloud beta compute forwarding-rules create psc-west \ --region=us-west1 \ --network=consumer-vpc \ --address=psc-west-address \ --target-service-attachment=projects/.../serviceAttachments/sa-west \ --allow-psc-global-access
- Il flag
--allow-psc-global-access
consente l'accesso globale su un endpoint Private Service Connect - L'accesso globale consente al client di trovarsi in una regione diversa dalla regola di forwarding di Private Service Connect, ma quest'ultima deve trovarsi ancora nella stessa regione del collegamento al servizio a cui è connesso.
- Per abilitare l'accesso globale non è richiesta alcuna configurazione nel collegamento al servizio del producer. È solo un'opzione lato consumatore.
Inoltre, l'accesso globale può essere attivato o disattivato in qualsiasi momento per gli endpoint esistenti. Non si verificano interruzioni del traffico per le connessioni attive quando si abilita l'accesso globale su un endpoint esistente. L'accesso globale è abilitato su una regola di forwarding esistente con il seguente comando:
gcloud beta compute forwarding-rules update psc-west --allow-psc-global-access
Disabilitazione dell'accesso globale
L'accesso globale può essere disattivato anche per le regole di forwarding esistenti con il flag --no-allow-psc-global-access
. Tieni presente che tutto il traffico tra regioni attivo verrà terminato dopo l'esecuzione di questo comando.
gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access
3. Cosa creerai
- Verrà creato un cluster MongoDB Atlas multiregionale (topologia descritta nella Figura 2) con un nodo rispettivamente nelle regioni us-west1 e due nodi nelle regioni us-west2.
- Un VPC consumer e una VM associata per accedere ai cluster MongoDB in us-west1 e us-west2.
- Un VPC e due subnet nelle regioni us-west1 e us-west2, rispettivamente con almeno 64 indirizzi IP liberi in ciascuna subnet (crea subnet con /26 e inferiori).
Il client MongoDB verrà installato su vm1 nel VPC consumer. In caso di errore del nodo primario in us-west1, il client sarà in grado di leggere/scrivere tramite il nuovo nodo primario in us-west2.
Figura 2.
Obiettivi didattici
- Creare un VPC e delle subnet di cui è stato eseguito il deployment in due regioni
- Come eseguire il deployment di un cluster MongoDB multiregionale
- Creare un endpoint privato
- Come connettersi a MongoDB
- Come eseguire e convalidare il failover di MongoDB multiregionale
Che cosa ti serve
- Progetto Google Cloud
- Fornisci una subnet /26 per regione
- Il proprietario del progetto o dell'organizzazione può accedere a MongoDB Atlas per creare un cluster MongoDB con livello di cluster M10 o superiore. (Utilizza GETATLAS per ricevere crediti senza costi per l'esecuzione del PoV)
4. Prima di iniziare
Aggiornare il progetto per supportare il codelab
Questo codelab utilizza le variabili $per facilitare l'implementazione della configurazione di gcloud in Cloud Shell.
All'interno di Cloud Shell, esegui queste operazioni:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
5. Configurazione consumer
Crea il VPC consumer
All'interno di Cloud Shell, esegui queste operazioni:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
Crea le subnet consumer
All'interno di Cloud Shell, esegui queste operazioni:
gcloud compute networks subnets create vm-subnet --project=$projectname --range=10.10.10.0/29 --network=consumer-vpc --region=us-west1
In Cloud Shell, crea l'endpoint consumer per us-west1:
gcloud compute networks subnets create psc-endpoint-us-west1 --project=$projectname --range=192.168.10.0/26 --network=consumer-vpc --region=us-west1
In Cloud Shell, crea l'endpoint consumer per us-west2:
gcloud compute networks subnets create psc-endpoint-us-west2 --project=$projectname --range=172.16.10.0/26 --network=consumer-vpc --region=us-west2
Router Cloud e configurazione NAT
Cloud NAT viene utilizzato nel codelab per l'installazione dei pacchetti software poiché le istanze VM non hanno un indirizzo IP esterno.
All'interno di Cloud Shell, crea il router Cloud.
gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1
In Cloud Shell, crea il gateway NAT.
gcloud compute routers nats create consumer-nat --router=consumer-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-west1
Configurazione vm1 dell'istanza
Nella sezione seguente creerai l'istanza Compute Engine, vm1.
In Cloud Shell, crea l'istanza vm1.
gcloud compute instances create vm1 \
--project=$projectname \
--zone=us-west1-a \
--machine-type=e2-micro \
--network-interface=subnet=vm-subnet,no-address \
--maintenance-policy=MIGRATE \
--provisioning-model=STANDARD \
--create-disk=auto-delete=yes,boot=yes,device-name=vm1,image=projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20230213,mode=rw,size=10,type=projects/$projectname/zones/us-west1-a/diskTypes/pd-balanced
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump -y
sudo apt-get install dnsutils -y"
Per consentire a IAP di connettersi alle tue istanze VM, crea una regola firewall che:
- Si applica a tutte le istanze VM a cui vuoi essere accessibile tramite IAP.
- Consente il traffico in entrata dall'intervallo IP 35.235.240.0/20. Questo intervallo contiene tutti gli indirizzi IP utilizzati da IAP per l'inoltro TCP.
In Cloud Shell, crea la regola firewall IAP.
gcloud compute firewall-rules create ssh-iap-consumer-vpc \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. Crea il cluster MongoDB Atlas multiregionale
- Dobbiamo configurare un cluster Atlas prima di iniziare la configurazione di PSC. Puoi abbonarti a MongoDB Atlas in uno dei due modi seguenti:
- Tramite Google Cloud Marketplace se hai un account Google Cloud. Consulta la documentazione per configurare il tuo abbonamento.
- Con la pagina di registrazione Atlas.
- Una volta sottoscritto l'abbonamento ad Atlas, fai clic sul pulsante Build a Database (Crea un database) come mostrato di seguito.
- Crea nuovo cluster → Dedicato
- Cloud provider e regione → Google Cloud
- Multi-cloud, multiregione e isolamento dei carichi di lavoro → selezionato (segno di spunta blu)
- Nodi eletti → us-west1 (1 nodo), us-west2 (2 nodi)
- Livello cluster → M10, lascia tutte le altre impostazioni come predefinite
- Nome cluster → psc-mongodb-uswest1-uswest2
- Seleziona → Crea cluster
- La creazione del database richiede 7-10 minuti
Vista del cluster dopo il deployment
7. Creazione di endpoint privati per us-west1
- Accedi al tuo account Atlas e vai al tuo progetto.
Creare un nuovo utente per consentire l'accesso in lettura/scrittura a qualsiasi database
Sicurezza → Accesso al database, seleziona Aggiungi nuovo utente al database. Di seguito è riportato un esempio di nome utente e password configurati come codelab. Assicurati di selezionare la lettura e la scrittura del ruolo integrato in qualsiasi database.
- In Sicurezza → Accesso alla rete, l'elenco per gli accessi IP non richiede una voce
Prepara gli endpoint privati in MongoDB Atlas
- Seleziona Accesso rete → Endpoint privati → Cluster dedicato → Aggiungi endpoint privato
Cloud provider
- Seleziona Google Cloud, quindi Avanti.
Collegamento servizio
- Seleziona la regione us-west1 e poi Avanti
Endpoint
- Per creare un endpoint Private Service Connect, fornisci quanto segue:
- ID progetto Google Cloud: seleziona "Mostra istruzioni" per i dettagli
- Nome VPC: consumer-vpc
- Nome subnet: psc-endpoint-us-west1
- Prefisso dell'endpoint Private Service Connect: psc-endpoint-us-west1
Configura gli endpoint
Nella sezione seguente viene generato uno script shell che dovrebbe essere salvato localmente denominato setup_psc.sh. Una volta salvato, modifica lo script shell per consentire l'accesso globale a psc. Puoi eseguire questa azione all'interno del progetto Google Cloud Cloud Shell.
- Script shell di esempio, l'output avrà valori diversi
- Copia lo script della shell dalla console MongoBD e salva i contenuti nel terminale Google Cloud Shell. Assicurati di salvare lo script come setup_psc.sh
Esempio prima dell'aggiornamento:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west1-ip-$i --region=us-west1 --subnet=psc-endpoint-us-west1
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west1-ip-$i --region=us-west1 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west1-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i
done
if [ $(gcloud compute forwarding-rules list --regions=us-west1 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west1*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west1. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west1 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west1*)" > atlasEndpoints-psc-endpoint-us-west1.json
Aggiornare lo script shell per supportare l'accesso globale
Usa l'editor nano o vi per identificare e aggiornare lo script shell con la seguente sintassi:
gcloud beta compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
Esempio dopo l'aggiornamento:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west1-ip-$i --region=us-west1 --subnet=psc-endpoint-us-west1
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west1-ip-$i --region=us-west1 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west1-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud beta compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
if [ $(gcloud compute forwarding-rules list --regions=us-west1 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west1*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west1. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west1 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west1*)" > atlasEndpoints-psc-endpoint-us-west1.json
Esegui lo script shell
Naviga ed esegui lo script setup_psc.sh, una volta completato un file denominato atlasEndpoints-psc-endpoint-us-west1.json. Il file JSON contiene un elenco di indirizzi IP e nomi di endpoint di Private Service Connect necessari per il passaggio successivo del deployment.
All'interno di Cloud Shell, esegui queste operazioni:
sh setup_psc.sh
Una volta completato lo script, usa l'editor di Cloud Shell per scaricare atlasEndpoints-psc-endpoint-us-west1.json in locale.
Carica il file JSON
Carica il file JSON salvato in precedenza atlasEndpoints-psc-endpoint-us-west1.json
Seleziona Crea
Convalida gli endpoint di Private Service Connect
Nella UI di MongoDB, vai al tuo progetto, quindi seleziona Sicurezza → Accesso alla rete → Endpoint privato. Selezionando la scheda, cluster dedicato, la transizione dell'endpoint a "Disponibile" richiederà 10 minuti.
Stato disponibile
Nella console Google Cloud, vai a Servizi di rete → Private Services Connect, seleziona la scheda Endpoint connesso che mostra gli endpoint consumer che eseguono la transizione In attesa → Accettato. Ecco un esempio:
8. Creazione di endpoint privati per us-west2
- Accedi al tuo account Atlas e vai al tuo progetto.
Prepara gli endpoint privati in MongoDB Atlas
- Seleziona Accesso rete → Endpoint privati → Cluster dedicato → Aggiungi endpoint privato
Cloud provider
- Seleziona Google Cloud, quindi Avanti.
Collegamento servizio
- Seleziona la regione us-west2 e poi Avanti
Endpoint
- Per creare un endpoint Private Service Connect, fornisci quanto segue:
- ID progetto Google Cloud: seleziona "Mostra istruzioni" per i dettagli
- Nome VPC: consumer-vpc
- Nome subnet: psc-endpoint-us-west2
- Prefisso dell'endpoint Private Service Connect: psc-endpoint-us-west2
Configura gli endpoint
Nella sezione seguente viene generato uno script shell che dovrebbe essere salvato localmente denominato setup_psc.sh. Una volta salvato, modifica lo script shell per consentire l'accesso globale a psc. Puoi eseguire questa azione all'interno del progetto Google Cloud Cloud Shell.
- Script shell di esempio, l'output avrà valori diversi
- Copia lo script della shell dalla console MongoBD e salva i contenuti nel terminale Google Cloud Shell. Assicurati di salvare lo script come setup_psc.sh
Esempio prima dell'aggiornamento:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west2-ip-$i --region=us-west2 --subnet=psc-endpoint-us-west2
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west2-ip-$i --region=us-west2 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west2-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i
done
if [ $(gcloud compute forwarding-rules list --regions=us-west2 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west2*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west2. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west2 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west2*)" > atlasEndpoints-psc-endpoint-us-west2.json
Aggiornare lo script shell per supportare l'accesso globale
Usa l'editor nano o vi per identificare e aggiornare lo script shell con la seguente sintassi:
gcloud beta compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2v
n1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
Esempio dopo l'aggiornamento:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west2-ip-$i --region=us-west2 --subnet=psc-endpoint-us-west2
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west2-ip-$i --region=us-west2 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west2-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud beta compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2v
n1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
if [ $(gcloud compute forwarding-rules list --regions=us-west2 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west2*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west2. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west2 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west2*)" > atlasEndpoints-psc-endpoint-us-west2.json
Esegui lo script shell
Naviga ed esegui lo script setup_psc.sh, una volta completato un file denominato atlasEndpoints-psc-endpoint-us-west2.json. Il file JSON contiene un elenco di indirizzi IP e nomi di endpoint di Private Service Connect necessari per il passaggio successivo del deployment.
All'interno di Cloud Shell, esegui queste operazioni:
sh setup_psc.sh
Una volta completato lo script, usa l'editor di Cloud Shell per scaricare atlasEndpoints-psc-endpoint-us-west2.json in locale.
Carica il file JSON
Carica il file JSON salvato in precedenza atlasEndpoints-psc-endpoint-us-west2.json
Seleziona Crea
Convalida gli endpoint di Private Service Connect
Nella UI di MongoDB, vai al tuo progetto, quindi seleziona Sicurezza → Accesso alla rete → Endpoint privato. Selezione della scheda, cluster dedicato, per la transizione dell'endpoint a disponibile dopo 10 minuti.
Stato disponibile:
Nella console Google Cloud, vai a Servizi di rete → Private Services Connect, seleziona la scheda Endpoint connesso che mostra gli endpoint consumer che passano in attesa → Accettato, nell'esempio riportato di seguito. Un totale di 100 endpoint viene distribuito nell’endpoint consumer e devi passare a accettato prima di andare al passaggio successivo.
9. Connettiti all'atlante MongoDB da endpoint privati
Una volta accettate le connessioni private ai servizi, è necessario un tempo aggiuntivo (10-15 minuti) per aggiornare il cluster MongoDB. Nella UI di MongoDB, il contorno grigio rappresenta l'aggiornamento del cluster, pertanto la connessione all'endpoint privato non è disponibile.
Identifica il deployment e seleziona Connetti (nota che la casella grigia non è più presente).
Scegli il tipo di connessione → Endpoint privato, seleziona Scegli un metodo di connessione
Seleziona Connect with the MongoDB Shell
Seleziona, non ho installato MongoDB Shell, Ubuntu 20.4 e assicurato di copiare il contenuto dal passaggio 1 e dal passaggio 3 in un blocco note.
10. Installa applicazione Mongosh
Prima dell'installazione, dovrai creare una stringa di comando basata sui valori copiati in precedenza ottenuti nei passaggi 1 e 3. Successivamente, accederai a vm1 utilizzando Cloud Shell, quindi l'installazione dell'applicazione mongosh e la convalida nel database primario (us-west1). L'immagine Ubuntu 20.4 è stata installata durante la creazione di vm1 nella consumer-vpc.
Scegli un metodo di connessione: Passaggio 1: Copia l'URL di download
Esempio di stringa di comando, sostituisci con i tuoi valori personalizzati:
https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
Scegli un metodo di connessione, passaggio 3.
Esempio di stringa di comando, sostituisci con i tuoi valori personalizzati:
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Accedi a vm1
All'interno di Cloud Shell, esegui queste operazioni:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Accedi a vm1 utilizzando IAP in Cloud Shell e riprova in caso di timeout.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Esegui l'installazione dal sistema operativo
Esegui l'installazione dall'accesso al sistema operativo Cloud Shell (ulteriori dettagli disponibili) aggiorna la sintassi di seguito con la tua stringa personalizzata
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
L'operazione dovrebbe rispondere con
OK
.
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update -y
wget https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
sudo dpkg -i mongodb-mongosh_1.7.1_amd64.deb
Connettiti al deployment di MongoDB
All'interno dell'accesso al sistema operativo Cloud Shell, esegui queste operazioni. Il nome utente e la password configurati sono codelab.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Ad esempio:
Esegui comandi sul database
All'interno dell'accesso al sistema operativo Cloud Shell, esegui queste operazioni.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. Regione MongoDB attiva del failover, us-west1
Prima di eseguire il failover, verifichiamo che us-west1 sia primario e us-west2 abbia due nodi secondari.
Vai a Database → psc-mongodb-uswest1-uswest2 → Panoramica
Nella sezione seguente accedi a vm1 che si trova in us-west1, fai il failover della regione del cluster MongoDB principale us-west1 e verifica che il database sia ancora raggiungibile dal cluster MongoDB in us-west2.
Puoi testare il failover principale e regionale dalla UI di Atlas.
- Accedi all'UI di Atlas.
- Fai clic su [...] accanto al nome del cluster, psc-mongodb-uswest1-uswest2 → Interruzione test.
- Seleziona Interruzione regionale → Seleziona regioni.
- Seleziona la regione principale, us-west1→ Simula interruzione regionale.
Una volta selezionato, il cluster mostrerà la simulazione dell'interruzione del servizio dopo 3-4 minuti.
Chiudi la finestra
Verifica che us-west1 non sia attivo e che us-west2 sia ora rilevato come principale
Vai a Database → psc-mongodb-uswest1-uswest2 → Panoramica
Convalida la connettività al cluster in base alla nuova istanza principale us-west2
Accedi a vm1 in us-west1 e accedi a mongodb in us-west2 per convalidare l'accesso globale a Private Service Connect.
Se la sessione di Cloud Shell è terminata, esegui queste operazioni:
All'interno di Cloud Shell, esegui queste operazioni:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Accedi a vm1 utilizzando IAP in Cloud Shell e riprova in caso di timeout.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Connettiti al deployment di MongoDB
All'interno dell'accesso al sistema operativo Cloud Shell, esegui queste operazioni.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Ad esempio:
Esegui comandi sul database
All'interno dell'accesso al sistema operativo Cloud Shell, esegui queste operazioni.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()
exit
Operazione riuscita: hai confermato che l'accesso globale di PSC consente la connettività senza interruzioni degli endpoint consumer tra le regioni per favorire l'alta disponibilità o a causa di interruzioni regionali. Nel codelab, il failover a livello di regione di MongoDB si è verificato nel nodo primario che si trovava su us-west1, pertanto la regione secondaria us-west2 ha assunto il controllo di una regione principale. Anche se il cluster ha causato un'interruzione a livello di regione, la VM1 consumer che si trova in us-west1 ha raggiunto correttamente il nuovo cluster principale in us-west2.
12. Esegui la pulizia
Da Cloud Console elimina gli endpoint consumer
Vai a Servizi di rete → Private Service Connect → ENDPOINTS COLLEGATI
Utilizza il filtro psc-endpoint per eliminare la potenziale eliminazione di endpoint consumer non lab. Seleziona tutti gli endpoint → ELIMINA
Elimina gli indirizzi IP interni statici associati agli endpoint consumer
Vai alla rete VPC → consumer-vpc→ INDIRIZZI IP INTERNI STATICI
Utilizza il filtro psc-endpoint per eliminare la potenziale eliminazione di endpoint consumer non lab e aumentare le righe per pagina fino a 100. Seleziona tutti gli endpoint → RELEASE
Da Cloud Shell, elimina i componenti del codelab.
gcloud compute instances delete vm1 --zone=us-west1-a --quiet
gcloud compute networks subnets delete psc-endpoint-us-west1 vm-subnet --region=us-west1 --quiet
gcloud compute networks subnets delete psc-endpoint-us-west2 --region=us-west2 --quiet
gcloud compute firewall-rules delete ssh-iap-consumer --quiet
gcloud compute routers delete consumer-cr --region=us-west1 --quiet
gcloud compute networks delete consumer-vpc --quiet
Dalla UI di Atlas identifica il cluster psc-mongodb-uswest1-uswest2 → fine simulazione
Seleziona Termina simulazione interruzione —> Esci
Il cluster sta ripristinando us-west1 come principale. L'operazione richiederà 3-4 minuti. Al termine, termina il cluster e prendi nota del contorno grigio che indica un cambiamento di stato.
Inserisci il nome del cluster → Termina
Elimina l'endpoint privato associato a us-west1 e us-west2
Dalla UI di Atlas, vai a Sicurezza → Accesso alla rete → Endpoint privato → seleziona Termina
13. Complimenti
Congratulazioni, hai configurato e convalidato un endpoint Private Service Connect con accesso globale a MongoDB in tutte le regioni. Hai creato correttamente un VPC consumer, un MongoDB multiregionale e degli endpoint consumer. Una VM situata in us-west1 si è connessa correttamente a MongoDB in us-west1 e us-west2 in seguito al failover a livello di regione.
Cosmopup pensa che i codelab siano straordinari.
Passaggi successivi
Dai un'occhiata ad alcuni di questi codelab...
- Utilizzo di Private Service Connect per pubblicare e utilizzare servizi con GKE
- Utilizzo di Private Service Connect per pubblicare e utilizzare servizi
- Connettiti ai servizi on-prem su una rete ibrida utilizzando Private Service Connect e un bilanciatore del carico proxy TCP interno
- Utilizzare Private Service Connect con la configurazione DNS automatica
Per approfondire Video
- Panoramica di Private Service Connect
- Che cos'è Private Service Connect?
- Tipi di bilanciatori del carico supportati