1. Wprowadzenie
Private Service Connect (PSC) upraszcza bezpieczne i prywatne korzystanie z usług. Ten model znacznie upraszcza architekturę sieci, ponieważ pozwala użytkownikom usług na prywatne połączenia z producentami usług w różnych organizacjach i eliminuje potrzebę tworzenia połączeń równorzędnych w wirtualnym środowisku prywatnym w chmurze. Rysunek 1 przedstawia atrybuty peeringu VPC i PSC.
Rysunek 1.
Jako użytkownik usług masz możliwość wyboru sposobu przydzielania prywatnych adresów IP do usług, a jednocześnie nie musisz zarządzać zakresami podsieci w przypadku sieci VPC producenta. Teraz możesz po prostu przypisać wybrany adres IP wirtualny z VPC do takiej usługi za pomocą połączenia usługi.
W tym laboratorium kodu utworzysz kompleksową architekturę Private Service Connect, która ilustruje wykorzystanie globalnego dostępu PSC w MongoDB Atlas.
Dostęp globalny umożliwia klientom nawiązywanie połączeń z Private Service Connect (PSC) bez względu na granice regionalne. Ta funkcja przydaje się do zapewnienia wysokiej dostępności usług zarządzanych hostowanych w wielu regionach lub do umożliwienia klientom dostępu do usługi, która nie znajduje się w tym samym regionie co klient.
2. Włączanie dostępu globalnego
Dostęp globalny to opcjonalna funkcja konfigurowana na podstawie reguły przekierowania po stronie klienta. Poniżej znajdziesz polecenie, które pokazuje, jak jest ona skonfigurowana:
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
włącza dostęp globalny w punkcie końcowym Private Service Connect - Dostęp globalny umożliwia klientowi znajdowanie się w innym regionie niż reguła przekierowania Private Service Connect, ale reguła przekierowania musi znajdować się w tym samym regionie co przyłącze usługi, z którym jest połączona.
- Aby włączyć dostęp globalny, nie trzeba konfigurować załącznika usługi producenta. Jest to opcja dostępna tylko dla konsumentów.
Dostęp globalny można też w dowolnym momencie włączyć lub wyłączyć w przypadku istniejących punktów końcowych. Przy włączaniu dostępu globalnego na istniejącym punkcie końcowym nie dochodzi do przerw w ruchu aktywnych połączeń. Dostęp globalny jest 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 globalnego dostępu
Dostęp globalny można też wyłączyć w dotychczasowych regułach przekierowania za pomocą flagi --no-allow-psc-global-access
. Pamiętaj, że po wykonaniu 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
- Utworzony zostanie wieloregionalny klaster MongoDB Atlas (topologia opisana na rysunku 2) z 1 węzłem w regionie us-west1 i 2 węzłami w regionie us-west2.
- Sieć VPC konsumenta i powiązana z nią maszyna wirtualna, aby uzyskać dostęp do klastrów MongoDB w regionach us-west1 i us-west2.
- Sieć VPC i 2 podsieci w regionach us-west1 i us-west2 z co najmniej 64 wolnymi adresami IP w każdej z nich (utwórz podsieci z zakresem /26 lub niższym).
Klient MongoDB zostanie zainstalowany na maszynie vm1 w VPC konsumenta. Gdy wystąpi błąd w węźle głównym w us-west1, klient będzie mógł odczytywać i zapisywać dane za pomocą nowego węzła głównego w us-west2.
Rysunek 2.
Czego się nauczysz
- Jak utworzyć sieć VPC i podsieci wdrożone w 2 regionach
- Jak wdrożyć klaster MongoDB Atlas w wielu regionach
- Jak utworzyć prywatny punkt końcowy
- Jak połączyć się z MongoDB
- Jak przeprowadzić i zweryfikować przełączenie awaryjne MongoDB w wielu regionach
Czego potrzebujesz
- Projekt Google Cloud
- Podaj podsieć /26 na region.
- właściciel projektu lub właściciel organizacji musi mieć dostęp do MongoDB Atlas, aby utworzyć klaster MongoDB z poziomem klastra M10 lub wyższym; (Aby uzyskać bezpłatne środki na korzystanie z usługi PoV, użyj GETATLAS)
4. Zanim zaczniesz
Aktualizowanie projektu w celu obsługi ćwiczeń z programowania
Ten samouczek Codelab wykorzystuje zmienne $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 przez konsumenta
Tworzenie środowiska VPC konsumenta
W Cloud Shell wykonaj te czynności:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
Tworzenie podsieci dla użytkowników
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 dla konsumenta w regionie 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 dla konsumenta w regionie 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
Cloud NAT jest używany w tym laboratorium do instalowania pakietów oprogramowania, ponieważ maszyny wirtualne nie mają zewnętrznego adresu IP.
W Cloud Shell utwórz router chmury.
gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1
W Cloud Shell utwórz 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 vm1
W następnej sekcji utworzysz instancję Compute Engine o nazwie vm1.
W Cloud Shell utwórz instancję 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"
Aby umożliwić IAP połączenie z instancjami maszyn wirtualnych, utwórz regułę zapory sieciowej, która:
- dotyczy wszystkich instancji maszyn wirtualnych, które mają być dostępne przez IAP;
- Zezwala na ruch przychodzący z zakresu adresów IP 35.235.240.0/20. Ten zakres zawiera wszystkie adresy IP, których IAP używa do przekierowywania TCP.
W Cloud Shell utwórz 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 obejmującego wiele regionów
- Zanim zaczniemy konfigurować PSC, musimy skonfigurować klaster Atlas. Subskrypcję MongoDB Atlas możesz wykupić na 2 sposoby:
- za pomocą Google Cloud Marketplace, jeśli masz konto Google Cloud; Aby skonfigurować subskrypcję, zapoznaj się z dokumentacją.
- Na stronie rejestracji Atlasa.
- Po subskrybowaniu Atlasu kliknij przycisk Utwórz bazę danych, jak pokazano poniżej.
- Utwórz nowy klaster → Specjalny
- Dostawca i region chmury → Google Cloud
- Izolacja wielu chmur, wielu regionów i zadań → wybrane (niebieski znacznik wyboru)
- Wybierane węzły → us-west1 (1 węzeł), us-west2 (2 węzły)
- Poziom klastra → M10, pozostaw wszystkie pozostałe ustawienia domyślne
- Nazwa klastra → psc-mongodb-uswest1-uswest2
- Wybierz → Utwórz klaster.
- Tworzenie bazy danych trwa 7–10 minut.
Widok klastra po wdrożeniu
7. Tworzenie prywatnego punktu końcowego w us-west1
- Zaloguj się na konto Atlas i otwórz swój projekt.
Tworzenie nowego użytkownika, aby zezwolić na dostęp do odczytu/zapisu do dowolnej bazy danych
Bezpieczeństwo → Dostęp do bazy danych – wybierz Dodaj nowego użytkownika bazy danych. Poniżej znajdziesz przykładową nazwę użytkownika i hasło skonfigurowane jako codelab. Pamiętaj, aby wybrać wbudowaną rolę odczytu i zapisu w dowolnej bazie danych.
- W sekcji Zabezpieczenia → Dostęp do sieci lista dostępu IP nie wymaga wpisu.
Przygotowanie prywatnych punktów końcowych w MongoDB Atlas
- Wybierz Dostęp do sieci → Punkty końcowe prywatne → Klaster dedykowany → Dodaj punkt końcowy prywatny
Dostawca chmury
- Wybierz Google Cloud, a następnie Dalej.
Przyłącze usługi
- Wybierz region us-west1, a następnie kliknij Dalej.
Punkty końcowe
- Aby utworzyć punkt końcowy usługi Private Service Connect, podaj te informacje:
- Identyfikator projektu Google Cloud: wybierz „Pokaż instrukcje”, aby wyświetlić szczegóły.
- Nazwa VPC: consumer-vpc
- Nazwa podsieci: psc-endpoint-us-west1
- Prefiks punktu końcowego Private Service Connect: psc-endpoint-us-west1
Konfigurowanie punktów końcowych
W następnej sekcji wygenerowany zostanie skrypt powłoki, który należy zapisać lokalnie pod nazwą setup_psc.sh. Po zapisaniu edytuj skrypt powłoki, aby zezwolić psc na dostęp globalny. Możesz to zrobić w Cloud Shell w projekcie Google Cloud.
- Przykładowy skrypt powłoki. Twoje dane wyjściowe będą miały inne wartości
- Skopiuj skrypt powłoki z konsoli MongoBD i zapisz zawartość w terminalu Cloud Shell w Google Cloud. Pamiętaj, aby zapisać skrypt 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
Zaktualizuj skrypt powłoki, aby umożliwić dostęp globalny
Za pomocą edytora nano lub vi zidentyfikuj i zaktualizuj skrypt powłoki za pomocą tej 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
Uruchom skrypt powłoki
Przejdź do skryptu setup_psc.sh i go uruchom. Po jego zakończeniu zostanie utworzony plik o nazwie atlasEndpoints-psc-endpoint-us-west1.json. Plik json zawiera listę adresów IP i nazwy punktów końcowych usługi Private Service Connect, które są wymagane do następnego kroku wdrażania.
W Cloud Shell wykonaj te czynności:
sh setup_psc.sh
Po zakończeniu działania skryptu użyj edytora Cloud Shell, aby pobrać plik atlasEndpoints-psc-endpoint-us-west1.json na dysk lokalny.
Prześlij plik JSON
Prześlij wcześniej zapisany plik JSON atlasEndpoints-psc-endpoint-us-west1.json.
Kliknij Utwórz.
Sprawdzanie punktów końcowych Private Service Connect
W interfejsie MongoDB przejdź do projektu, a następnie do Bezpieczeństwo → Dostęp do sieci → Punkt końcowy prywatny. Po wybraniu karty dedykowany klaster przejście punktu końcowego do stanu dostępne zajmie 10 minut.
Stan dostępny
W konsoli Google Cloud przejdź do Usługi sieciowe → Private Service Connect i wybierz kartę Połączony punkt końcowy, na której wyświetlane są punkty końcowe konsumenta przechodzące z stanu Oczekujące na zatwierdzenie → Zatwierdzone, jak w przykładzie poniżej:
8. Tworzenie prywatnego punktu końcowego w us-west2
- Zaloguj się na konto Atlas i otwórz swój projekt.
Przygotowanie prywatnych punktów końcowych w MongoDB Atlas
- Wybierz Dostęp do sieci → Punkty końcowe prywatne → Klaster dedykowany → Dodaj punkt końcowy prywatny
Dostawca chmury
- Wybierz Google Cloud, a następnie Dalej.
Przyłącze usługi
- Wybierz region us-west2 i kliknij Dalej.
Punkty końcowe
- Aby utworzyć punkt końcowy usługi Private Service Connect, podaj te informacje:
- Identyfikator projektu Google Cloud: wybierz „Pokaż instrukcje”, aby wyświetlić szczegóły.
- Nazwa VPC: consumer-vpc
- Nazwa podsieci: psc-endpoint-us-west2
- Prefiks punktu końcowego Private Service Connect: psc-endpoint-us-west2
Konfigurowanie punktów końcowych
W następnej sekcji wygenerowany zostanie skrypt powłoki, który należy zapisać lokalnie pod nazwą setup_psc.sh. Po zapisaniu edytuj skrypt powłoki, aby zezwolić psc na dostęp globalny. Możesz to zrobić w Cloud Shell w projekcie Google Cloud.
- Przykładowy skrypt powłoki. Twoje dane wyjściowe będą miały inne wartości
- Skopiuj skrypt powłoki z konsoli MongoBD i zapisz zawartość w terminalu Cloud Shell w Google Cloud. Pamiętaj, aby zapisać skrypt 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
Zaktualizuj skrypt powłoki, aby umożliwić dostęp globalny
Za pomocą edytora nano lub vi zidentyfikuj i zaktualizuj skrypt powłoki za pomocą tej 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
Uruchom skrypt powłoki
Przejdź do skryptu setup_psc.sh i go uruchom. Po jego zakończeniu zostanie utworzony plik o nazwie atlasEndpoints-psc-endpoint-us-west2.json. Plik json zawiera listę adresów IP i nazwy punktów końcowych usługi Private Service Connect, które są wymagane do następnego kroku wdrażania.
W Cloud Shell wykonaj te czynności:
sh setup_psc.sh
Po zakończeniu działania skryptu użyj edytora Cloud Shell, aby pobrać plik atlasEndpoints-psc-endpoint-us-west2.json lokalnie.
Prześlij plik JSON
Prześlij wcześniej zapisany plik JSON atlasEndpoints-psc-endpoint-us-west2.json.
Kliknij Utwórz.
Weryfikowanie punktów końcowych Private Service Connect
W interfejsie MongoDB przejdź do projektu, a następnie do Bezpieczeństwo → Dostęp do sieci → Punkt końcowy prywatny. Po wybraniu karty dedykowanego klastra przejście na nowy punkt końcowy będzie dostępne po 10 minutach.
Stan dostępny:
W konsoli Google Cloud przejdź do Usługi sieciowe → Private Service Connect i wybierz kartę Połączony punkt końcowy, na której wyświetlane są punkty końcowe konsumenta przechodzące z stanu Oczekujące na zaakceptowanie → Zaakceptowane, jak pokazano na przykładzie poniżej. W przypadku punktu końcowego dla konsumenta wdrożone jest łącznie 100 punktów końcowych, które przed przejściem do następnego kroku muszą zostać przeniesione do stanu akceptacji.
9. Łączenie z MongoDB Atlas z prywatnych punktów końcowych
Po zaakceptowaniu połączeń z usługami prywatnymi potrzebny jest dodatkowy czas (10–15 minut) na zaktualizowanie klastra MongoDB. W interfejsie MongoDB szary kontur oznacza aktualizację klastra, więc połączenie z prywatnym punktem końcowym jest niedostępne.
Znajdź wdrożenie i kliknij Połącz (szare pole nie jest już widoczne).
Wybierz typ połączenia → Punkt końcowy prywatny, wybierz Wybierz metodę połączenia
Wybierz Połącz z powłoką MongoDB.
Wybierz „Nie mam zainstalowanego MongoDB Shell”, Ubuntu 20.4 i upewnij się, że skopiowałeś/skopiowałaś zawartość z kroku 1 i 3 do notatnika.
10. Instalowanie aplikacji mongosh
Przed instalacją musisz utworzyć ciąg poleceń na podstawie wcześniej skopiowanych wartości uzyskanych w kroku 1 i 3. Następnie połączysz się przez SSH z maszyną vm1 za pomocą Cloud Shell, a następnie zainstalujesz aplikację mongosh i zweryfikujesz ją w podstawowej bazie danych (us-west1). Podczas tworzenia vm1 w consumer-vpc został zainstalowany obraz Ubuntu 20.4.
Wybierz metodę połączenia: krok 1. Skopiuj adres URL do pobrania
Przykładowy ciąg poleceń, który należy zastąpić niestandardowymi wartościami:
https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
Wybierz metodę połączenia, krok 3.
Przykładowy ciąg poleceń, który należy zastąpić niestandardowymi wartościami:
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Logowanie 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ę do vm1 za pomocą IAP w Cloud Shell i spróbuj ponownie, jeśli wystąpi przekroczenie limitu czasu.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Wykonywanie instalacji z poziomu systemu operacyjnego
Przeprowadź instalację z zalogowaniem do systemu operacyjnego Cloud Shell. Dodatkowe szczegóły. Zaktualizuj poniższą składnię za pomocą własnego ciągu.
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
Operacja powinna odpowiedzieć
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
Po zalogowaniu się w Cloud Shell wykonaj te czynności. Nazwa użytkownika i hasło to „codelab”.
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:
Wykonywanie poleceń dotyczących bazy danych
Po zalogowaniu się w Cloud Shell wykonaj te czynności.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. Aktywny region MongoDB, us-west1
Zanim przejdziemy do przełączenia, sprawdźmy, czy us-west1 jest węzłem głównym, a us-west2 ma 2 węzły dodatkowe.
Otwórz kolejno Baza danych → psc-mongodb-uswest1-uswest2 → Omówienie.
W następnej sekcji zaloguj się na vm1 w regionie us-west1, przełącz na podstawowy region klastra MongoDB us-west1 i sprawdź, czy bazę danych można nadal osiągnąć z klastra MongoDB w regionie us-west2.
Możesz przetestować zarówno przełączanie awaryjne na region główny, jak i regionalne w interfejsie Atlasa.
- Zaloguj się w interfejsie Atlas.
- Kliknij […] obok nazwy klastra psc-mongodb-uswest1-uswest2 → Test niedostępności.
- Wybierz Wyłączenie regionalne → Wybierz regiony.
- Wybierz główny region us-west1 → Symuluj przerwę w działaniu na poziomie regionu.
Po wybraniu klaster wyświetli symulację przerwy w działaniu po 3–4 minutach
Zamknij okno
Sprawdź, czy us-west1 jest niedostępny, a us-west2 przejął rolę podstawowego.
Otwórz kolejno Baza danych → psc-mongodb-uswest1-uswest2 → Omówienie.
Sprawdzanie połączenia z klasterem za pomocą nowego podstawowego regionu us-west2
Zaloguj się na maszynie wirtualnej 1 znajdującej się w regionie us-west1 i uzyskaj dostęp do bazy danych MongoDB w regionie us-west2, aby sprawdzić globalny dostęp usługi Private Service Connect.
Jeśli Twoja 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ę do vm1 za pomocą IAP w Cloud Shell i spróbuj ponownie, jeśli wystąpi przekroczenie limitu czasu.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Łączenie z wdrożeniem MongoDB
Po zalogowaniu się w 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:
Wykonywanie poleceń dotyczących bazy danych
Po zalogowaniu się w Cloud Shell wykonaj te czynności.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()
exit
Sukces: sprawdzono, że dostęp globalny PSC umożliwia płynną łączność punktów końcowych konsumentów w różnych regionach, co zapewnia wysoką dostępność lub umożliwia działanie w przypadku awarii regionalnych. W tym przypadku w ramach kodu testowego nastąpiło przełączenie regionalne MongoDB w węźle głównym w regionie us-west1, więc region pomocniczy us-west2 przejął kontrolę nad regionem głównym. Mimo że klaster spowodował przerwę w działaniu na poziomie regionalnym, maszyna wirtualna klienta vm1 znajdująca się w regionie us-west1 mogła połączyć się z nowym klastrem głównym w regionie us-west2.
12. Czyszczenie
W Cloud Console usuń punkty końcowe konsumenta
Przejdź do Usługi sieciowe → Private Service Connect → PUNKTY KOŃCOWE POŁĄCZONE
Użyj filtra psc-endpoint, aby wyeliminować potencjalne usunięcie punktów końcowych konsumentów spoza laboratorium. Wybierz wszystkie punkty końcowe → USUŃ.
Usuń statyczne wewnętrzne adresy IP powiązane z punktami końcowymi konsumentów
Przejdź do sieci VPC → consumer-vpc → STATYCZNE WEWNĘTRZNE ADRESY IP
Użyj filtra psc-endpoint, aby wyeliminować potencjalne usunięcie punktów końcowych konsumentów spoza laboratorium i zwiększyć liczbę wierszy na stronę do 100. Wybierz wszystkie punkty końcowe → PUBLIKUJ
W Cloud Shell usuń komponenty 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
W interfejsie Atlasa znajdź klaster psc-mongodb-uswest1-uswest2 → zakończ symulację.
Wybierz Zakończ symulację przerwy w działaniu —> Zamknij.
Klaster przywraca teraz us-west1 jako klaster podstawowy. Ten proces zajmie 3–4 minuty. Po zakończeniu pracy zamknij klaster. Zwróć uwagę na szary kontur wskazujący zmianę stanu.
Wstaw nazwę klastra → Zakończ
Usuń prywatny punkt końcowy powiązany z regionami us-west1 i us-west2
W interfejsie Atlasa przejdź do opcji Zabezpieczenia → Dostęp do sieci → Punkt końcowy prywatny → Wybierz Zakończ.
13. Gratulacje
Gratulacje! Punkt końcowy Private Service Connect został skonfigurowany i zweryfikowany z globalnym dostępem do MongoDB w różnych regionach. Udało Ci się utworzyć VPC konsumenta, wieloregionową usługę MongoDB i punkty końcowe konsumenta. Po wystąpieniu awarii regionalnej maszyna wirtualna znajdująca się w regionie us-west1 nawiązała połączenie z usługą MongoDB zarówno w regionie us-west1, jak i us-west2.
Cosmopup uważa, że ćwiczenia z programowania są niesamowite.
Co dalej?
Zapoznaj się z tymi ćwiczeniami z programowania
- Korzystanie z Private Service Connect do publikowania i używania usług w GKE
- Używanie Private Service Connect do publikowania i korzystania z usług
- Łączenie z usługami lokalnymi za pomocą Hybrid Networking przy użyciu 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 i filmy
- Omówienie Private Service Connect
- Co to jest Private Service Connect?
- Obsługiwane typy systemów równoważenia obciążenia