1. Wprowadzenie
Usługa Private Service Connect (PSC) upraszcza bezpieczne, prywatne korzystanie z usług. Ten model znacznie upraszcza architekturę sieci, ponieważ umożliwia konsumentom usług prywatne łączenie się z producentami usług w różnych organizacjach i eliminuje potrzebę tworzenia połączeń równorzędnych w chmurze prywatnego środowiska wirtualnego w chmurze. Rysunek 1 przedstawia połączenia równorzędne VPC i atrybuty PSC.
Rysunek1.
Jako konsument usług masz możliwość wyboru sposobu przydzielenia prywatnych adresów IP do usług, a jednocześnie eliminuje konieczność zarządzania zakresami podsieci w sieciach VPC producenta. Teraz możesz po prostu przypisać do takiej usługi wybrany wirtualny adres IP ze swojej sieci VPC za pomocą usługi Service Connect.
W ramach tego ćwiczenia w Codelabs utworzysz kompleksową architekturę usługi Private Service Connect ilustrującą wykorzystanie globalnego dostępu PSC za pomocą atlasu MongoDB.
Dostęp globalny pozwala klientom łączyć się z usługą Private Service Connect (PSC) przez granice regionalne. Jest to przydatne do tworzenia wysokiej dostępności w usługach zarządzanych hostowanych w wielu regionach lub do zapewniania klientom dostępu do usług znajdujących się w innym regionie niż klient.
2. Włączanie dostępu globalnego
Dostęp globalny to funkcja opcjonalna skonfigurowana w regule przekierowania po stronie klienta. Sposób konfiguracji znajdziesz w poniższym poleceniu:
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
- Flaga
--allow-psc-global-access
umożliwia dostęp globalny do punktu końcowego usługi Private Service Connect - Dostęp globalny pozwala klientowi znajdować się w innym regionie niż reguła przekierowania usługi Private Service Connect, ale reguła przekierowania musi nadal znajdować się w tym samym regionie co przyłącze usługi, z którym jest połączona.
- Nie musisz konfigurować dostępu globalnego na przyłączu usługi producenta. Jest to opcja wyłącznie po stronie konsumenta.
Dostęp globalny można też w każdej chwili włączać i wyłączać w przypadku istniejących punktów końcowych. Gdy włączysz dostęp globalny w istniejącym punkcie końcowym, nie wystąpią zakłócenia ruchu w aktywnych połączeniach. Dostęp globalny został włączony w istniejącej regule przekierowania za pomocą tego polecenia:
gcloud beta compute forwarding-rules update psc-west --allow-psc-global-access
Wyłączanie dostępu globalnego
Dostęp globalny można też wyłączyć w istniejących regułach przekierowania za pomocą flagi --no-allow-psc-global-access
. Pamiętaj, że po uruchomieniu tego polecenia cały aktywny ruch międzyregionalny zostanie zakończony.
gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access
3. Co utworzysz
- Zostanie utworzony klaster MongoDB Atlas z wieloma regionami (topologia opisana na Rysunku 2) z 1 węzłem w regionie us-west1 i 2 węzłami w regionach us-west2.
- Sieć VPC klienta i powiązana maszyna wirtualna z dostępem do klastrów MongoDB w lokalizacjach us-west1 i us-west2.
- Sieć VPC i 2 podsieci w regionach us-west1 i us-west2 z co najmniej 64 bezpłatnymi adresami IP w każdej podsieci (utwórz podsieci z wartością /26 i mniejszą).
Klient MongoDB zostanie zainstalowany w maszynie wirtualnej vm1 w vpc konsumenta. Jeśli węzeł główny ulegnie awarii w regionie us-west1, klient będzie mógł odczytywać i zapisywać dane w nowym węźle głównym w regionie us-west2.
Rysunek 2.
Czego się nauczysz
- Jak utworzyć sieć VPC i podsieci wdrożone w 2 regionach
- Jak wdrożyć wieloregionalny klaster atlas MongoDB
- Jak utworzyć prywatny punkt końcowy
- Łączenie z MongoDB
- Jak wykonywać i weryfikować przełączanie awaryjne MongoDB w wielu regionach
Czego potrzebujesz
- Projekt Google Cloud
- Podaj podsieć /26 na region
- Dostęp właściciela projektu lub właściciela organizacji do MongoDB Atlas, aby utworzyć klaster MongoDB na poziomie klastra M10 lub wyższym. (Skorzystaj z GETATLAS, aby otrzymać bezpłatne środki za realizację punktu widzenia)
4. Zanim zaczniesz
Zaktualizuj projekt, aby obsługiwał ćwiczenia z programowania
W tym ćwiczeniach z programowania korzystamy ze zmiennych $variables, aby ułatwić implementację konfiguracji gcloud w Cloud Shell.
W Cloud Shell wykonaj te czynności:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
5. Konfiguracja dla klientów indywidualnych
Tworzenie sieci VPC dla użytkowników indywidualnych
W Cloud Shell wykonaj te czynności:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
Tworzenie podsieci klienta
W Cloud Shell wykonaj te czynności:
gcloud compute networks subnets create vm-subnet --project=$projectname --range=10.10.10.0/29 --network=consumer-vpc --region=us-west1
W Cloud Shell utwórz punkt końcowy konsumenta dla 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
W Cloud Shell utwórz punkt końcowy konsumenta dla 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
Konfiguracja Cloud Router i NAT
Usługa Cloud NAT jest używana w ramach ćwiczeń w Codelabs do instalowania pakietów oprogramowania, ponieważ instancje maszyn wirtualnych nie mają zewnętrznego adresu IP.
Utwórz router Cloud Router w Cloud Shell.
gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1
Utwórz w Cloud Shell bramę NAT.
gcloud compute routers nats create consumer-nat --router=consumer-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-west1
Konfiguracja instancji maszyny wirtualnej
W tej sekcji utworzysz instancję Compute Engine vm1.
Utwórz instancję maszyny wirtualnej w Cloud Shell.
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"
Aby umożliwić IAP nawiązywanie połączeń z maszynami wirtualnymi, utwórz regułę zapory sieciowej, która:
- Dotyczy wszystkich instancji maszyn wirtualnych, które mają być dostępne za pomocą IAP.
- Zezwala na ruch przychodzący z zakresu adresów IP 35.235.240.0/20. Ten zakres zawiera wszystkie adresy IP używane przez IAP do przekierowywania TCP.
Utwórz w Cloud Shell regułę zapory sieciowej IAP.
gcloud compute firewall-rules create ssh-iap-consumer-vpc \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. Tworzenie klastra MongoDB Atlas z wieloma regionami
- Zanim rozpoczniemy konfigurowanie PSC, musimy skonfigurować klaster Atlas. Subskrypcję MongoDB Atlas możesz zasubskrybować na 2 sposoby:
- w Google Cloud Marketplace, jeśli masz konto Google Cloud; Aby skonfigurować subskrypcję, zapoznaj się z dokumentacją.
- na stronie rejestracji Versa 3.
- Po zasubskrybowaniu serwera Atlas kliknij przycisk Zbuduj bazę danych, jak pokazano poniżej.
- Utwórz nowy klaster → Dedykowany
- Dostawca chmury region → Google Cloud
- Usługi wielochmurowe i regionalne izolacja zadań → wybrana (niebieski zaznacz)
- Węzły do wyboru → us-west1 (1 węzeł), us-west2 (2 węzły)
- Poziom klastra → M10, pozostaw wszystkie inne ustawienia domyślne
- Nazwa klastra → psc-mongodb-uswest1-uswest2
- Wybierz → Utwórz klaster
- Tworzenie bazy danych zajmuje 7–10 minut
Widok klastra po wdrożeniu
7. Tworzenie prywatnego punktu końcowego dla us-west1
- Zaloguj się na swoje konto Atlas i przejdź do swojego projektu.
Utwórz nowego użytkownika, aby zezwolić na dostęp z uprawnieniami do odczytu i zapisu do dowolnej bazy danych
Zabezpieczenia → Dostęp do bazy danych wybierz opcję Dodaj nowego użytkownika bazy danych. Poniżej znajdziesz przykład nazwy użytkownika i hasła, które zostały skonfigurowane w ramach ćwiczenia w Codelabs. Wybierz wbudowane role z możliwością odczytu i zapisu w dowolnej bazie danych.
- W sekcji Zabezpieczenia → Dostęp do sieci lista dostępu IP nie wymaga wprowadzania
Przygotowywanie prywatnych punktów końcowych w MongoDB Atlas
- Wybierz, Dostęp do sieci → Prywatne punkty końcowe → Klaster dedykowany → Dodaj prywatny punkt końcowy
Dostawca chmury
- Wybierz Google Cloud, a potem Dalej
Przyłącze usługi
- Wybierz region, us-west1, a następnie dalej
Punkty końcowe
- Aby utworzyć punkt końcowy Private Service Connect, podaj te informacje:
- Identyfikator projektu Google Cloud: wybierz „pokaż instrukcje” aby dowiedzieć się więcej
- Nazwa VPC: customer-vpc
- Nazwa podsieci: psc-endpoint-us-west1
- Prefiks punktu końcowego usługi Private Service Connect: psc-endpoint-us-west1
Konfigurowanie punktów końcowych
W tej sekcji zostanie wygenerowany skrypt powłoki, który powinien zostać zapisany lokalnie o nazwie setup_psc.sh. Po zapisaniu zmodyfikuj skrypt powłoki, aby zezwolić na globalny dostęp do PSC. To działanie możesz wykonać w projekcie Google Cloud Cloud Shell.
- Przykładowy skrypt powłoki; dane wyjściowe będą miały różne wartości
- Skopiuj skrypt powłoki z konsoli MongoBD i zapisz zawartość w terminalu Google Cloud Shell. Pamiętaj też o zapisaniu skryptu jako setup_psc.sh
Przykład przed aktualizacją:
#!/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
Aktualizowanie skryptu powłoki, aby obsługiwał dostęp globalny
Użyj edytora nano lub vi, aby zidentyfikować i zaktualizować skrypt powłoki, stosując poniższą składnię:
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
Przykład po aktualizacji:
#!/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
Uruchamianie skryptu powłoki
Przejdź do skryptu setup_psc.sh i wykonaj go. Po zakończeniu tworzenia zostanie utworzony plik o nazwie atlasEndpoints-psc-endpoint-us-west1.json. Plik json zawiera listę adresów IP i nazw punktów końcowych usługi Private Service Connect wymagane w następnym kroku wdrożenia.
W Cloud Shell wykonaj te czynności:
sh setup_psc.sh
Gdy skrypt zakończy działanie, użyj edytora Cloud Shell, aby pobrać lokalnie plik atlasEndpoints-psc-endpoint-us-west1.json.
Prześlij plik JSON
Prześlij zapisany wcześniej plik json atlasEndpoints-psc-endpoint-us-west1.json
Wybierz Utwórz.
Weryfikowanie punktów końcowych usługi Private Service Connect
W interfejsie MongoDB przejdź do swojego projektu, a następnie wybierz Zabezpieczenia → Dostęp do sieci → Prywatny punkt końcowy. Po wybraniu karty (dedykowanego klastra) przejście do dostępnego punktu końcowego zajmie 10 minut.
Stan dostępności
W konsoli Google Cloud otwórz Usługi sieciowe → Private Service Connect i wybierz kartę Połączony punkt końcowy, w którym punkty końcowe klienta są przenoszone ze stanu Oczekujące → Zaakceptowane (przykład poniżej):
8. Tworzenie prywatnego punktu końcowego dla us-west2
- Zaloguj się na swoje konto Atlas i przejdź do swojego projektu.
Przygotowywanie prywatnych punktów końcowych w MongoDB Atlas
- Wybierz, Dostęp do sieci → Prywatne punkty końcowe → Klaster dedykowany → Dodaj prywatny punkt końcowy
Dostawca chmury
- Wybierz Google Cloud, a potem Dalej
Przyłącze usługi
- Wybierz region, us-west2, a następnie dalej
Punkty końcowe
- Aby utworzyć punkt końcowy Private Service Connect, podaj te informacje:
- Identyfikator projektu Google Cloud: wybierz „pokaż instrukcje” aby dowiedzieć się więcej
- Nazwa VPC: customer-vpc
- Nazwa podsieci: psc-endpoint-us-west2
- Prefiks punktu końcowego usługi Private Service Connect: psc-endpoint-us-west2
Konfigurowanie punktów końcowych
W tej sekcji zostanie wygenerowany skrypt powłoki, który powinien zostać zapisany lokalnie o nazwie setup_psc.sh. Po zapisaniu zmodyfikuj skrypt powłoki, aby zezwolić na globalny dostęp do PSC. To działanie możesz wykonać w projekcie Google Cloud Cloud Shell.
- Przykładowy skrypt powłoki; dane wyjściowe będą miały różne wartości
- Skopiuj skrypt powłoki z konsoli MongoBD i zapisz zawartość w terminalu Google Cloud Shell. Pamiętaj też o zapisaniu skryptu jako setup_psc.sh
Przykład przed aktualizacją:
#!/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
Aktualizowanie skryptu powłoki, aby obsługiwał dostęp globalny
Użyj edytora nano lub vi, aby zidentyfikować i zaktualizować skrypt powłoki, stosując poniższą składnię:
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
Przykład po aktualizacji:
#!/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
Uruchamianie skryptu powłoki
Przejdź do skryptu setup_psc.sh i wykonaj go. Po zakończeniu tworzenia zostanie utworzony plik o nazwie atlasEndpoints-psc-endpoint-us-west2.json. Plik json zawiera listę adresów IP i nazw punktów końcowych usługi Private Service Connect wymagane w następnym kroku wdrożenia.
W Cloud Shell wykonaj te czynności:
sh setup_psc.sh
Gdy skrypt się zakończy, użyj edytora Cloud Shell, aby lokalnie pobrać plik atlasEndpoints-psc-endpoint-us-west2.json.
Prześlij plik JSON
Prześlij zapisany wcześniej plik json atlasEndpoints-psc-endpoint-us-west2.json
Wybierz Utwórz.
Zweryfikuj punkty końcowe Private Service Connect
W interfejsie MongoDB przejdź do swojego projektu, a następnie wybierz Zabezpieczenia → Dostęp do sieci → Prywatny punkt końcowy. Wybierz kartę (dedykowany klaster) i przejście punktu końcowego na dostępne po 10 minutach.
Dostępny stan:
W konsoli Google Cloud otwórz Usługi sieciowe → Private Service Connect i wybierz kartę Połączony punkt końcowy, w którym punkty końcowe klienta są przenoszone ze stanu Oczekujące → Zaakceptowane (przykład poniżej). W punkcie końcowym konsumenta wdrożonych jest łącznie 100 punktów końcowych. musisz przejść na zaakceptowane kampanie i przejść do kolejnego kroku.
9. Łączenie się z atlasem MongoDB z prywatnych punktów końcowych
Po zaakceptowaniu prywatnych połączeń usługi dodatkowy czas (10–15 minut) jest wymagany na zaktualizowanie klastra MongoDB. W interfejsie MongoDB szary kontur symbolizuje aktualizację klastra, dlatego łączenie się z prywatnym punktem końcowym nie jest dostępne.
Zidentyfikuj wdrożenie i wybierz Połącz (szare pole już nie istnieje)
Wybierz typ połączenia → Prywatny punkt końcowy, a następnie wybierz metodę połączenia
Wybierz Połącz z powłoką MongoDB
Jeśli nie, nie mam zainstalowanej powłoki MongoDB (Ubuntu 20.4) i skopiuj zawartość z kroków 1 i 3 do notatnika.
10. Zainstaluj aplikację Mongosh
Przed instalacją musisz utworzyć ciąg polecenia na podstawie wcześniej skopiowanych wartości uzyskanych w krokach 1 i 3. Potem przeprowadzisz ssh do maszyny wirtualnej przy użyciu Cloud Shell, a następnie zainstalujesz aplikację mongosh i przejdziesz do podstawowej bazy danych (us-west1). Obraz Ubuntu 20.4 został zainstalowany podczas tworzenia maszyny wirtualnej w VPC dla klientów indywidualnych.
Wybierz metodę połączenia: krok 1. Skopiuj URL pobierania
Przykładowy ciąg znaków polecenia, zastąp go własnymi wartościami:
https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
Wybierz metodę połączenia (krok 3).
Przykładowy ciąg znaków polecenia, zastąp go własnymi wartościami:
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Zaloguj się w vm1
W Cloud Shell wykonaj te czynności:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Zaloguj się w vm1 z wykorzystaniem IAP w Cloud Shell. W razie przekroczenia limitu czasu spróbuj ponownie.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Instalowanie instalacji z poziomu systemu operacyjnego
Wykonaj instalację po zalogowaniu się do systemu operacyjnego Cloud Shell, dostępne są dodatkowe szczegóły, zaktualizuj składnię poniżej za pomocą niestandardowego ciągu
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
Operacja powinna odpowiedzieć z użyciem
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
Łączenie z wdrożeniem MongoDB
W ramach logowania do systemu operacyjnego Cloud Shell wykonaj te czynności. Skonfigurowana nazwa użytkownika i hasło to ćwiczenie w Codelabs.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Przykład poniżej:
Wykonuj polecenia względem bazy danych
W ramach logowania do systemu operacyjnego Cloud Shell wykonaj te czynności.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. Aktywne przełączanie awaryjne w regionie MongoDB, us-west1
Przed wykonaniem przełączania awaryjnego sprawdźmy, czy us-west1 jest podstawowym, a us-west2 ma 2 węzły dodatkowe.
Przejdź do Bazy danych → psc-mongodb-uswest1-uswest2 → Omówienie
W następnej sekcji zaloguj się do maszyny wirtualnej us-west1 w regionie us-west1, przełącz awaryjne na drugi region klastra MongoDB us-west1 i sprawdź, czy baza danych jest nadal dostępna z klastra MongoDB w regionie us-west2.
W interfejsie użytkownika Versa 3 możesz testować zarówno główne, jak i regionalne przełączanie awaryjne.
- Zaloguj się w interfejsie użytkownika Versa 3.
- Kliknij [...] obok nazwy klastra: psc-mongodb-uswest1-uswest2 → Przerwa w działaniu testu.
- Wybierz Regionalne przerwy w działaniu → Wybierz regiony.
- Wybierz region główny, us-west1→ Symuluj regionalne przerwy w działaniu usługi.
Po wybraniu klastra po upływie 3–4 minut wyświetli się symulacja przerw w działaniu usługi
Zamknij okno
Sprawdź, czy us-west1 jest wyłączony i czy us-west2 jest teraz ustawiony jako główny
Przejdź do Bazy danych → psc-mongodb-uswest1-uswest2 → Omówienie
Sprawdź połączenie z klastrem przez nową zasadę główną us-west2
Zaloguj się w vm1 w regionie us-west1 i otwórz mongodb w regionie us-west2, sprawdzając globalny dostęp do usługi Private Service Connect.
Jeśli sesja Cloud Shell została zakończona, wykonaj te czynności:
W Cloud Shell wykonaj te czynności:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Zaloguj się w vm1 z wykorzystaniem IAP w Cloud Shell. W razie przekroczenia limitu czasu spróbuj ponownie.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Łączenie z wdrożeniem MongoDB
W ramach logowania do systemu operacyjnego Cloud Shell wykonaj te czynności.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Przykład poniżej:
Wykonuj polecenia względem bazy danych
W ramach logowania do systemu operacyjnego Cloud Shell wykonaj te czynności.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()
exit
Udało Ci się potwierdzić, że globalny dostęp PSC umożliwia bezproblemowe połączenie punktów końcowych konsumenta w różnych regionach, co pomaga w wysokiej dostępności lub w związku z regionalnymi przerwami w działaniu usługi. W ramach ćwiczenia regionalne przełączenie awaryjne MongoDB miało miejsce w węźle głównym us-west1, dlatego region dodatkowy us-west2 przejął region główny. Chociaż klaster spowodował przerwę w działaniu usługi w regionie, konsumencka maszyna wirtualna us-west1 zdołała dotrzeć do nowego klastra podstawowego w regionie us-west2.
12. Czyszczenie
Usuń punkty końcowe konsumenta z konsoli Cloud
Przejdź do usług sieciowych → Private Service Connect → POŁĄCZONE PUNKTY KOŃCOWE
Użyj filtra psc-endpoint, aby wyeliminować potencjalne usunięcie punktów końcowych klienta spoza laboratorium. Wybierz wszystkie punkty końcowe → USUŃ
Usuń statyczne wewnętrzne adresy IP powiązane z punktami końcowymi konsumenta
Przejdź do sieci VPC → customer-vpc→ STATYCZNE WEWNĘTRZNE ADRESY IP
Użyj filtra psc-endpoint, aby wyeliminować potencjalne usunięcie punktów końcowych klienta spoza Lab i zwiększyć liczbę wierszy na stronę do 100. Wybierz wszystkie punkty końcowe → PREMIERUJ
Usuń komponenty ćwiczeń z programowania z Cloud Shell.
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
W interfejsie użytkownika Atlas zidentyfikuj klaster psc-mongodb-uswest1-uswest2 → koniec symulacji
Wybierz Zakończ symulację przerwy w działaniu usługi —> Zamknij
Klaster przełącza się na tryb podstawowy us-west1. Ten proces zajmie 3–4 minuty. Gdy klaster zostanie ukończony, zwróć uwagę na szary kontur wskazujący zmianę stanu.
Wstaw nazwę klastra → Zakończ
Usuń prywatny punkt końcowy powiązany z us-west1 i us-west2
W interfejsie użytkownika Versa 3 przejdź do sekcji Zabezpieczenia → Dostęp do sieci → Prywatny punkt końcowy → Wybierz opcję Zakończ
13. Gratulacje
Gratulujemy! Udało Ci się skonfigurować i zweryfikować punkt końcowy usługi Private Service Connect z globalnym dostępem do MongoDB w różnych regionach. Udało Ci się utworzyć konsumenta sieć VPC, wiele regionów MongoDB i punkty końcowe klienta. Maszyna wirtualna znajdująca się w regionie us-west1 została połączona z MongoDB zarówno w us-west1, jak i us-west2 podczas regionalnego przełączania awaryjnego.
Cosmopup uważa, że ćwiczenia z programowania są świetne!
Co dalej?
Zapoznaj się z tymi ćwiczeniami z programowania...
- Korzystanie z usługi Private Service Connect przy użyciu GKE
- Używanie usługi Private Service Connect do publikowania i używania usług
- Łącz się z usługami lokalnymi przez sieć hybrydową za pomocą usługi Private Service Connect i wewnętrznego systemu równoważenia obciążenia serwera proxy TCP
- Korzystanie z Private Service Connect z automatyczną konfiguracją DNS
Więcej informacji filmy,
- Omówienie usługi Private Service Connect
- Czym jest Private Service Connect?
- Obsługiwane typy systemów równoważenia obciążenia