1. مقدمه
در این کد لبه شما با استفاده از یک متعادل کننده بار پروکسی داخلی tcp و گروه نقطه پایانی شبکه ترکیبی که از Looker PSC به عنوان مصرف کننده خدمات فراخوانی شده است، یک اتصال به سمت جنوب به پایگاه داده postgres داخلی از طریق H-VPN انجام خواهید داد.
Private Service Connect یکی از قابلیتهای شبکه Google Cloud است که به مصرفکنندگان اجازه میدهد بهطور خصوصی از داخل شبکه VPC خود به خدمات مدیریت شده دسترسی داشته باشند. به طور مشابه، به تولیدکنندگان خدمات مدیریت شده اجازه می دهد تا این خدمات را در شبکه های VPC جداگانه خود میزبانی کنند و یک اتصال خصوصی به مصرف کنندگان خود ارائه دهند. به عنوان مثال، هنگامی که از Private Service Connect برای دسترسی به Looker استفاده می کنید، شما مصرف کننده سرویس هستید و Google تولید کننده سرویس است، همانطور که در شکل 1 مشخص شده است.
شکل 1.
دسترسی Southbound که به عنوان PSC معکوس نیز شناخته میشود، مصرفکننده را قادر میسازد تا یک سرویس منتشر شده بهعنوان یک تولیدکننده ایجاد کند تا به Looker اجازه دسترسی به نقاط پایانی در محل، در VPC، به سرویسهای مدیریتشده و ترکیبی بدهد. همانطور که در شکل 2 مشخص شده است، بدون توجه به جایی که Looker PSC در کجا مستقر شده است، اتصالات به جنوب می توانند در هر منطقه مستقر شوند.
شکل 2.
چیزی که یاد خواهید گرفت
- الزامات شبکه
- یک سرویس تولید کننده Private Service Connect ایجاد کنید
- یک نقطه پایانی Private Service Connect در Looker ایجاد کنید
- با استفاده از یک Test Connection از Looker به پایگاه داده postgres در محل متصل شوید
آنچه شما نیاز دارید
- پروژه Google Cloud با مجوزهای مالک
- نمونه PSC Looker موجود
2. آنچه می سازید
شما یک شبکه Producer، looker-psc-demo، برای استقرار متعادل کننده بار پراکسی tcp داخلی و Hybrid NEG که به عنوان یک سرویس از طریق Private Service Connect (PSC) منتشر می شود، ایجاد خواهید کرد. برای نشان دادن یک پایگاه داده در محل، یک VPC روی prem-demo متصل به Looker-psc-Demo VPC با استفاده از HA-VPN مستقر خواهید کرد.
اقدامات زیر را برای تأیید اعتبار دسترسی به سرویس تولیدکننده انجام خواهید داد:
- یک نقطه پایانی PSC در Looker مرتبط با پیوست سرویس تولیدکننده ایجاد کنید
- از کنسول Looker برای تأیید اعتبار اتصال به پایگاه داده postgres در محل استفاده کنید
3. الزامات شبکه
در زیر تجزیه و تحلیل الزامات شبکه برای شبکه Producer آورده شده است، مصرف کننده در این Codelab نمونه Looker PSC است.
اجزاء | توضیحات |
VPC (looker-psc-demo) | حالت سفارشی VPC |
VPC (در نسخه آزمایشی اولیه) | حالت سفارشی VPC |
زیرشبکه PSC NAT | بستههای شبکه VPC مصرفکننده با استفاده از NAT منبع (SNAT) ترجمه میشوند تا آدرسهای IP منبع اصلی آنها به آدرسهای IP منبع از زیرشبکه NAT در شبکه VPC تولیدکننده تبدیل شود. |
زیرشبکه قانون حمل و نقل PSC | برای تخصیص یک آدرس IP برای متعادل کننده بار پراکسی TCP داخلی منطقه ای استفاده می شود |
زیرشبکه PSC NEG | برای تخصیص یک آدرس IP برای گروه نقطه پایانی شبکه استفاده می شود |
زیرشبکه فقط پروکسی | به هر یک از پراکسی های load balancer یک آدرس IP داخلی اختصاص داده شده است. بسته های ارسال شده از یک پروکسی به یک ماشین مجازی پشتیبان یا نقطه پایانی دارای یک آدرس IP منبع از زیر شبکه فقط پراکسی هستند. |
هیبرید NEG | در محل و سایر سرویسهای ابری مانند سایر خدمات Cloud Load Balancing رفتار میشود. تفاوت اصلی این است که شما از یک NEG اتصال ترکیبی برای پیکربندی نقاط پایانی این backendها استفاده می کنید. نقاط پایانی باید ترکیبات IP:پورت معتبری باشند که متعادل کننده بار شما می تواند با استفاده از محصولات اتصال ترکیبی مانند Cloud VPN یا Cloud Interconnect به آنها برسد. |
خدمات Backend | یک سرویس پشتیبان به عنوان پلی بین متعادل کننده بار و منابع باطن شما عمل می کند. در آموزش، سرویس Backend با Hybrid NEG مرتبط است. |
روتر ابری |
|
HA-VPN | HA VPN بین شبکههای Google Cloud VPC . در این توپولوژی، می توانید با استفاده از یک دروازه HA VPN در هر شبکه، دو شبکه Google Cloud VPC را به هم متصل کنید. شبکه های VPC می توانند در یک منطقه یا چندین منطقه باشند. |
Cloud NAT | توسط VPC نسخه ی نمایشی اولیه برای خروج از اینترنت استفاده می شود |
4. توپولوژی Codelab
5. راه اندازی و الزامات
تنظیم محیط خود به خود
- به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .
- نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
- شناسه پروژه در تمام پروژههای Google Cloud منحصربهفرد است و تغییرناپذیر است (پس از تنظیم نمیتوان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام
PROJECT_ID
شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، میتوانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند. - برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
- در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورتحساب فراتر از این آموزش، میتوانید منابعی را که ایجاد کردهاید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
Cloud Shell را راه اندازی کنید
در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.
از Google Cloud Console ، روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:
تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:
این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این کد لبه را می توان در یک مرورگر انجام داد. شما نیازی به نصب چیزی ندارید.
6. قبل از شروع
API ها را فعال کنید
در داخل Cloud Shell، مطمئن شوید که شناسه پروژه شما تنظیم شده است:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone=[YOUR-ZONE]
echo $project
echo $region
فعال کردن تمام خدمات لازم:
gcloud services enable compute.googleapis.com
7. Producer VPC Network ایجاد کنید
شبکه VPC
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud compute networks create looker-psc-demo --subnet-mode custom
ایجاد زیرشبکه
زیرشبکه PSC به منظور ترجمه آدرس شبکه با پیوست سرویس PSC مرتبط خواهد شد.
در داخل Cloud Shell، زیرشبکه PSC NAT را ایجاد کنید:
gcloud compute networks subnets create producer-psc-nat-subnet --network looker-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT
در داخل Cloud Shell، زیرشبکه قانون حمل و نقل تولیدکننده را ایجاد کنید:
gcloud compute networks subnets create producer-psc-fr-subnet --network looker-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access
در داخل Cloud Shell، زیرشبکه فقط پروکسی منطقهای تولیدکننده ایجاد کنید:
gcloud compute networks subnets create $region-proxy-only-subnet \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=$region \
--network=looker-psc-demo \
--range=10.10.10.0/24
آدرس IP متعادل کننده بار را رزرو کنید
در داخل Cloud Shell، یک آدرس IP داخلی برای متعادل کننده بار رزرو کنید:
gcloud compute addresses create hybrid-neg-lb-ip \
--region=$region \
--subnet=producer-psc-fr-subnet
در داخل Cloud Shell، آدرس IP رزرو شده را مشاهده کنید.
gcloud compute addresses describe hybrid-neg-lb-ip \
--region=$region | grep -i address:
خروجی نمونه:
gcloud compute addresses describe hybrid-neg-lb-ip --region=$region | grep -i address:
address: 172.16.20.2
Hybrid NEG را راه اندازی کنید
یک NEG هیبریدی ایجاد کنید و –network-endpoint-type را روی NON_GCP_PRIVATE_IP_PORT تنظیم کنید
در داخل Cloud Shell، یک NEG Hybrid ایجاد کنید که برای دسترسی به پایگاه داده on-prem استفاده می شود:
gcloud compute network-endpoint-groups create on-prem-hybrid-neg \
--network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
--network=looker-psc-demo \
--zone=$zone
در داخل Cloud Shell، Hybrid NEG را با IP:Port پایگاه داده on-prem، 192.168.10.4 و پورت 5432 که در مرحله بعد در آموزش ایجاد شده است، به روز کنید:
gcloud compute network-endpoint-groups update on-prem-hybrid-neg \
--add-endpoint=ip=192.168.10.4,port=5432 \
--zone=$zone
یک بررسی بهداشتی منطقه ای ایجاد کنید
در داخل Cloud Shell، یک بررسی سلامت ایجاد کنید که پورت پایگاه داده on-prem، 5432 را بررسی کند:
gcloud compute health-checks create tcp on-prem-5432-healthcheck \
--region=$region \
--port=5432
خط مشی فایروال شبکه و قوانین فایروال را ایجاد کنید
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud compute network-firewall-policies create looker-psc-demo-policy --global
gcloud compute network-firewall-policies associations create --firewall-policy looker-psc-demo-policy --network looker-psc-demo --name looker-psc-demo --global-firewall-policy
قانون فایروال زیر به ترافیک از محدوده زیرشبکه PSC NAT به تمام نمونه های شبکه اجازه می دهد.
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp
8. ایجاد سرویس تولید کننده
اجزای Load Balancer را ایجاد کنید
در داخل Cloud Shell، یک سرویس Backend ایجاد کنید::
gcloud compute backend-services create producer-backend-svc --region=$region --load-balancing-scheme=INTERNAL_MANAGED --protocol=TCP --region=$region --health-checks=on-prem-5432-healthcheck --health-checks-region=$region
در داخل Cloud Shell، Backend NEG Hybrid را به سرویس Backend اضافه کنید:
gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=on-prem-hybrid-neg --network-endpoint-group-zone=$zone --balancing-mode=CONNECTION --max-connections=100 --region=$region
در Cloud Shell، یک پروکسی TCP هدف ایجاد کنید تا درخواستها را به سرویس باطن خود هدایت کند:
gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
--backend-service=producer-backend-svc \
--region=$region
در دستور زیر، یک قانون فوروارد (internal tcp proxy load balancer) ایجاد کنید.
در Cloud Shell موارد زیر را انجام دهید:
gcloud compute forwarding-rules create producer-hybrid-neg-fr \
--load-balancing-scheme=INTERNAL_MANAGED \
--network-tier=PREMIUM \
--network=looker-psc-demo \
--subnet=producer-psc-fr-subnet \
--address=hybrid-neg-lb-ip \
--target-tcp-proxy=producer-lb-tcp-proxy \
--target-tcp-proxy-region=$region \
--region=$region \
--ports=5432
پیوست سرویس ایجاد کنید
در داخل Cloud Shell، پیوست سرویس، onpremdatabase1-svc-attachment را ایجاد کنید:
gcloud compute service-attachments create onpremdatabase1-svc-attachment --region=$region --producer-forwarding-rule=producer-hybrid-neg-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet
در مرحله بعد، پیوست سرویس فهرست شده در selfLink URI را که با پروژه هایی برای پیکربندی نقطه پایانی PSC در Looker شروع می شود، دریافت کرده و یادداشت کنید.
selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/onpremdatabase1-svc-attachment
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud compute service-attachments describe onpremdatabase1-svc-attachment --region=$region
نمونه خروجی مورد انتظار:
connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-09-01T16:07:51.600-07:00'
description: ''
enableProxyProtocol: false
fingerprint: cFt9rERR1iE=
id: '2549689544315850024'
kind: compute#serviceAttachment
name: onpremdatabase1-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
high: '19348441121424360'
low: '2549689544315850024'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-hybrid-neg-fr
در Cloud Console به مسیر زیر بروید:
خدمات شبکه → اتصال سرویس خصوصی → خدمات منتشر شده
9. یک اتصال نقطه پایانی PSC در Looker ایجاد کنید
در بخش بعدی، پیوست سرویس تولیدکنندگان را با Looker Core PSC از طریق استفاده از پرچمهای –psc-service-attachment در Cloud Shell برای یک دامنه، مرتبط میکنید.
در داخل Cloud Shell، با به روز رسانی پارامترهای زیر برای مطابقت با محیط خود، انجمن psc را ایجاد کنید:
- INSTANCE_NAME: نام نمونه Looker شما (هسته Google Cloud).
- DOMAIN_1: onprem.database1.com
- SERVICE_ATTACHMENT_1: URI هنگام ایجاد پیوست سرویس، onpremdatabase1-svc-attachment گرفته می شود
- REGION: منطقه ای که نمونه Looker (هسته Google Cloud) شما در آن میزبانی می شود.
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION
مثال:
gcloud looker instances update looker-psc-instance --psc-service-attachment domain=onprem.database1.com,attachment=projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment --region=$region
در داخل Cloud Shell، سرویسAttachments را تأیید کنید وضعیت اتصال «پذیرفته شده است»، با نام Looker PSC Instance خود بهروزرسانی کنید:
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json
مثال:
gcloud looker instances describe looker-psc-instance --region=$region --format=json
مثال:
{
"adminSettings": {},
"createTime": "2024-08-23T00:00:45.339063195Z",
"customDomain": {
"domain": "looker.cosmopup.com",
"state": "AVAILABLE"
},
"encryptionConfig": {},
"lookerVersion": "24.14.18",
"name": "projects/$project/locations/$region/instances/looker-psc-instance",
"platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
"pscConfig": {
"allowedVpcs": [
"projects/$project/global/networks/looker-psc-demo",
"projects/$project/global/networks/looker-shared-vpc"
],
"lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
"serviceAttachments": [
{
"connectionStatus": "ACCEPTED",
"localFqdn": "onprem.database1.com",
"targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment"
}
]
},
"pscEnabled": true,
"state": "ACTIVE",
"updateTime": "2024-09-01T23:15:07.426372901Z"
}
اعتبار سنجی نقطه پایانی PSC در Cloud Console
از Cloud Console می توانید اتصال PSC را تأیید کنید
در Cloud Console به مسیر زیر بروید:
Looker → Looker Instance → Details
شبکه VPC on-prem را ایجاد کنید
شبکه VPC
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud compute networks create on-prem-demo --project=$project --subnet-mode=custom
زیرشبکه پایگاه داده Postgresql را ایجاد کنید
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud compute networks subnets create database-subnet --project=$project --range=192.168.10.0/28 --network=on-prem-demo --region=$region
در داخل Cloud Shell، یک آدرس IPv4 داخلی، که برای onprem.database1.com، 192.168.10.4 استفاده میشود، رزرو کنید:
gcloud compute addresses create on-prem-database1-ip --region=$region --subnet=database-subnet --addresses 192.168.10.4
روتر ابری را برای VPC نسخه ی نمایشی اولیه ایجاد کنید
Cloud NAT در آموزش نصب بسته نرم افزاری استفاده می شود زیرا نمونه VM آدرس IP خارجی ندارد.
در داخل Cloud Shell، Cloud Router مورد استفاده با Cloud NAT و HA-VPN را ایجاد کنید:
gcloud compute routers create on-prem-cr \
--region=$region \
--network=on-prem-demo \
--asn=65002
در داخل Cloud Shell، دروازه NAT را ایجاد کنید:
gcloud compute routers nats create on-prem-nat --router=on-prem-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region $region
نمونه آزمایشی پایگاه داده را ایجاد کنید
یک نمونه پایگاه داده postgres ایجاد کنید که برای آزمایش و اعتبارسنجی اتصال به Looker استفاده می شود.
در داخل Cloud Shell، نمونه را ایجاد کنید:
gcloud compute instances create postgres-database \
--project=$project \
--zone=$zone \
--machine-type=e2-medium \
--subnet=database-subnet \
--no-address \
--private-network-ip 192.168.10.4 \
--image-family debian-12 \
--image-project debian-cloud \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt -y install postgresql postgresql-client postgresql-contrib -y"
خط مشی فایروال شبکه و قوانین فایروال را ایجاد کنید
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud compute network-firewall-policies create on-prem-demo-policy --global
gcloud compute network-firewall-policies associations create --firewall-policy on-prem-demo-policy --network on-prem-demo --name on-prem-demo --global-firewall-policy
برای اینکه به IAP اجازه دهید به نمونه های VM شما متصل شود، یک قانون فایروال ایجاد کنید که:
- برای تمام نمونه های VM که می خواهید با استفاده از IAP در دسترس باشند، اعمال می شود.
- به ترافیک ورودی از محدوده IP 35.235.240.0/20 اجازه می دهد. این محدوده شامل تمام آدرس های IP است که IAP برای ارسال TCP استفاده می کند.
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy on-prem-demo-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22 --global-firewall-policy
قانون فایروال زیر به ترافیک از محدوده زیرشبکه فقط پراکسی به تمام نمونه های شبکه اجازه می دهد.
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy on-prem-demo-policy --description "allow traffic from proxy only subnet" --direction INGRESS --src-ip-ranges 10.10.10.0/24 --global-firewall-policy --layer4-configs=tcp
10. اتصال هیبریدی
در بخش زیر، یک Cloud Router ایجاد می کنید که به شما امکان می دهد با استفاده از پروتکل دروازه مرزی (BGP) مسیرها را بین Virtual Private Cloud (VPC) و شبکه همتای خود به صورت پویا مبادله کنید.
Cloud Router می تواند یک جلسه BGP را روی یک تونل Cloud VPN برای اتصال شبکه های شما راه اندازی کند. به طور خودکار محدوده آدرس IP زیرشبکه جدید را می آموزد و آنها را به شبکه همتای شما اعلام می کند.
در مراحل زیر HA VPN را بین Looker-psc-Demo VPC و on-prem-demo VPC برای نشان دادن اتصال NEG هیبریدی به onprem.database1.com مستقر خواهید کرد.
HA VPN GW را برای looker-psc-demo ایجاد کنید
هنگامی که هر دروازه ایجاد می شود، دو آدرس IPv4 خارجی به طور خودکار اختصاص می یابد، یکی برای هر رابط دروازه.
در داخل Cloud Shell، HA VPN GW را ایجاد کنید:
gcloud compute vpn-gateways create looker-psc-demo-vpn-gw \
--network=looker-psc-demo \
--region=$region
HA VPN GW را برای نسخه آزمایشی اولیه ایجاد کنید
هنگامی که هر دروازه ایجاد می شود، دو آدرس IPv4 خارجی به طور خودکار اختصاص می یابد، یکی برای هر رابط دروازه.
در داخل Cloud Shell، HA VPN GW را ایجاد کنید:
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-demo\
--region=$region
ایجاد HA VPN GW را تأیید کنید
با استفاده از کنسول، به مسیر HYBRID CONNECTIVITY → VPN → CLOUD VPN GATEWAYS بروید.
Cloud Router را برای looker-psc-demo ایجاد کنید
در داخل Cloud Shell، Cloud Router را ایجاد کنید:
gcloud compute routers create looker-psc-demo-cr \
--region=$region \
--network=looker-psc-demo\
--asn=65001
تونل های VPN را برای Looker-psc-Demo ایجاد کنید
شما دو تونل VPN در هر دروازه HA VPN ایجاد خواهید کرد.
ایجاد VPN tunnel0
در داخل Cloud Shell، tunnel0 ایجاد کنید:
gcloud compute vpn-tunnels create looker-psc-demo-tunnel0 \
--peer-gcp-gateway on-prem-vpn-gw \
--region $region \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router looker-psc-demo-cr \
--vpn-gateway looker-psc-demo-vpn-gw \
--interface 0
ایجاد VPN tunnel1
در داخل Cloud Shell، tunnel1 ایجاد کنید:
gcloud compute vpn-tunnels create looker-psc-demo-tunnel1 \
--peer-gcp-gateway on-prem-vpn-gw \
--region $region \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router looker-psc-demo-cr \
--vpn-gateway looker-psc-demo-vpn-gw \
--interface 1
تونل های VPN را برای نسخه ی نمایشی اولیه ایجاد کنید
شما دو تونل VPN در هر دروازه HA VPN ایجاد خواهید کرد.
ایجاد VPN tunnel0
در داخل Cloud Shell، tunnel0 ایجاد کنید:
gcloud compute vpn-tunnels create on-prem-tunnel0 \
--peer-gcp-gateway looker-psc-demo-vpn-gw \
--region $region \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router on-prem-cr \
--vpn-gateway on-prem-vpn-gw \
--interface 0
ایجاد VPN tunnel1
در داخل Cloud Shell، tunnel1 ایجاد کنید:
gcloud compute vpn-tunnels create on-prem-tunnel1 \
--peer-gcp-gateway looker-psc-demo-vpn-gw \
--region $region \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router on-prem-cr \
--vpn-gateway on-prem-vpn-gw \
--interface 1
اعتبار سنجی ایجاد تونل vpn
با استفاده از کنسول، به مسیر HYBRID CONNECTIVITY → VPN → CLOUD VPN TUNNELS بروید.
11. همسایگان BGP را ایجاد کنید
یک رابط BGP و همتاسازی برای Looker-psc-Demo ایجاد کنید
در داخل Cloud Shell، رابط BGP را ایجاد کنید:
gcloud compute routers add-interface looker-psc-demo-cr \
--interface-name if-tunnel0-to-onprem \
--ip-address 169.254.1.1 \
--mask-length 30 \
--vpn-tunnel looker-psc-demo-tunnel0 \
--region $region
در داخل Cloud Shell، همتای BGP را ایجاد کنید:
gcloud compute routers add-bgp-peer looker-psc-demo-cr \
--peer-name bgp-on-premises-tunnel0 \
--interface if-tunnel1-to-onprem \
--peer-ip-address 169.254.1.2 \
--peer-asn 65002 \
--region $region
در داخل Cloud Shell، رابط BGP را ایجاد کنید:
gcloud compute routers add-interface looker-psc-demo-cr \
--interface-name if-tunnel1-to-onprem \
--ip-address 169.254.2.1 \
--mask-length 30 \
--vpn-tunnel looker-psc-demo-tunnel1 \
--region $region
در داخل Cloud Shell، همتای BGP را ایجاد کنید:
gcloud compute routers add-bgp-peer looker-psc-demo-cr \
--peer-name bgp-on-premises-tunnel1 \
--interface if-tunnel2-to-onprem \
--peer-ip-address 169.254.2.2 \
--peer-asn 65002 \
--region $region
یک رابط BGP و همتاسازی برای نسخه ی نمایشی اولیه ایجاد کنید
در داخل Cloud Shell، رابط BGP را ایجاد کنید:
gcloud compute routers add-interface on-prem-cr \
--interface-name if-tunnel0-to-looker-psc-demo \
--ip-address 169.254.1.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel0 \
--region $region
در داخل Cloud Shell، همتای BGP را ایجاد کنید:
gcloud compute routers add-bgp-peer on-prem-cr \
--peer-name bgp-looker-psc-demo-tunnel0 \
--interface if-tunnel1-to-looker-psc-demo \
--peer-ip-address 169.254.1.1 \
--peer-asn 65001 \
--region $region
در داخل Cloud Shell، رابط BGP را ایجاد کنید:
gcloud compute routers add-interface on-prem-cr \
--interface-name if-tunnel1-to-looker-psc-demo \
--ip-address 169.254.2.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel1 \
--region $region
در داخل Cloud Shell، همتای BGP را ایجاد کنید:
gcloud compute routers add-bgp-peer on-prem-cr \
--peer-name bgp-looker-psc-demo-tunnel1\
--interface if-tunnel2-to-looker-psc-demo \
--peer-ip-address 169.254.2.1 \
--peer-asn 65001 \
--region $region
برای مشاهده جزئیات تونل VPN به مسیر Hybrid CONNECTIVITY → VPN بروید.
مسیرهای آموخته شده looker-psc-demo را از طریق HA VPN تأیید کنید
اکنون که تونلهای HA VPN و جلسات BGP ایجاد شدهاند، رفتار پیشفرض Cloud Router تبلیغ مسیرهای زیرشبکه است. مشاهده مسیرهای آموخته شده looker-psc-demo.
با استفاده از کنسول، به شبکه VPC → شبکه های VPC → Looker-psc-Demo → ROUTES → REGION → VIEW بروید.
Observe looker-psc-demo پایگاه داده-subnet 192.168.10.0/28 را از VPC-prem-demo یاد گرفته است.
مسیرهای یادگیری VPC در مرحله آزمایشی را از طریق HA VPN تأیید کنید
از آنجایی که رفتار پیشفرض Cloud Router این است که همه زیرشبکهها را تبلیغ کند، تنها زیرشبکه پراکسی از طریق BGP تبلیغ میشود. Hybrid NEG در هنگام برقراری ارتباط با سرور onprem.database1.com فقط از زیرشبکه پراکسی به عنوان آدرس منبع استفاده می کند.
Observe on-prem-demo proxy-only-subnet 10.10.10.0/24 را از looker-psc-demo یاد گرفته است.
با استفاده از کنسول، به شبکه VPC → شبکه های VPC → نمایش اولیه → مسیرها → REGION → VIEW بروید.
12. Looker postgres-base database
در بخش زیر، SSH را در postgres-database vm با استفاده از Cloud Shell انجام خواهید داد.
در داخل Cloud Shell، یک نمونه ssh به postgres-database انجام دهید **:**
gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"
در داخل سیستم عامل، آدرس IP (ens4) نمونه postgres-database را شناسایی و یادداشت کنید:
ip a
مثال:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 1000
link/ether 42:01:c0:a8:0a:04 brd ff:ff:ff:ff:ff:ff
altname enp0s4
inet 192.168.10.4/32 metric 100 scope global dynamic ens4
valid_lft 66779sec preferred_lft 66779sec
inet6 fe80::4001:c0ff:fea8:a04/64 scope link
valid_lft forever preferred_lft forever
در داخل سیستم عامل، وارد postgresql شوید:
sudo -u postgres psql postgres
در داخل سیستم عامل، اعلان رمز عبور را وارد کنید:
\password postgres
در داخل سیستم عامل، رمز عبور را روی postgres قرار دهید (یک رمز عبور را دو بار وارد کنید):
postgres
مثال:
user@postgres-database:~$ sudo -u postgres psql postgres
\password postgres
psql (13.11 (Debian 13.11-0+deb11u1))
Type "help" for help.
postgres=# \password postgres
Enter new password for user "postgres":
Enter it again:
در داخل سیستم عامل، از postgres خارج شوید:
\q
مثال:
postgres=# \q
user@postgres-database:~$
در بخش بعدی، IP نمونه postgres-database (192.168.10.4) و زیر شبکه فقط پروکسی (10.10.10.0/24) را در فایل pg_hba.conf تحت اتصالات محلی IPv4 درج می کنید.
sudo nano /etc/postgresql/15/main/pg_hba.conf
اسکرین شات زیر آپدیت کامل شده است:
در بخش زیر، postgresql.conf را حذف کنید تا همه آدرسهای IP «*» را در تصویر زیر گوش دهید:
sudo nano /etc/postgresql/15/main/postgresql.conf
قبل از:
بعد از:
در داخل سیستم عامل، سرویس postgresql را مجددا راه اندازی کنید:
sudo service postgresql restart
در داخل سیستم عامل، وضعیت postgresql را به عنوان فعال تأیید کنید:
sudo service postgresql status
مثال:
در داخل سیستم عامل، وضعیت postgresql را به عنوان فعال تأیید کنید:
user@postgres-database:/$ sudo service postgresql status
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
Active: active (exited) since Mon 2024-09-02 12:10:10 UTC; 1min 46s ago
Process: 20486 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 20486 (code=exited, status=0/SUCCESS)
CPU: 2ms
Sep 02 12:10:10 postgres-database systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Sep 02 12:10:10 postgres-database systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.
13. پایگاه داده postgres را ایجاد کنید
در بخش زیر، یک پایگاه داده postgres با نام postgres_looker و schema looker_schema ایجاد خواهید کرد که برای اعتبارسنجی اتصال looker به داخل محل استفاده می شود.
در داخل سیستم عامل، وارد postgres شوید:
sudo -u postgres psql postgres
در داخل سیستم عامل، پایگاه داده را ایجاد کنید:
create database postgres_looker;
در داخل سیستم عامل، پایگاه داده را فهرست کنید:
\l
در داخل سیستم عامل، کاربر postgres_looker را با رمز عبور postgreslooker ایجاد کنید:
create user postgres_looker with password 'postgreslooker';
در داخل سیستم عامل، به پایگاه داده متصل شوید:
\c postgres_looker;
در داخل سیستم عامل، schema looker-schema را ایجاد کنید و از Cloud Shell خارج شوید.
create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
Exit from the OS, returning you to cloud shell:
\q
مثال:
user@postgres-database:/$ sudo -u postgres psql postgres
psql (15.8 (Debian 15.8-0+deb12u1))
Type "help" for help.
postgres=# create database postgres_looker;
CREATE DATABASE
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------------+----------+----------+---------+---------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc |
postgres_looker | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
(4 rows)
postgres=# create user postgres_looker with password 'postgreslooker';
CREATE ROLE
postgres=# \c postgres_looker;
You are now connected to database "postgres_looker" as user "postgres".
postgres_looker=# create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
CREATE SCHEMA
CREATE TABLE
postgres_looker-# \q
14. Looker را با پایگاه داده Postgres postgres ادغام کنید
در بخش زیر از Looker Console برای ایجاد اتصال پایگاه داده به نمونه postgres-database داخلی استفاده خواهید کرد.
به ADMIN → پایگاه داده → اتصالات → انتخاب افزودن اتصال بروید
جزئیات اتصال را در تصویر زیر پر کنید، CONNECT را انتخاب کنید
اکنون اتصال پیکربندی شده است
15. اعتبار اتصال Looker
در بخش بعدی نحوه اعتبارسنجی اتصال Looker به پایگاه داده postgres در on-prem-vpc با استفاده از اکشن Looker 'test' و TCPDUMP را خواهید آموخت.
اگر زمان جلسه تمام شده است، از Cloud Shell وارد پایگاه داده postgres شوید.
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone=[YOUR-ZONE]
echo $project
echo $region
gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"
از سیستم عامل، یک فیلتر TCPDUMP با زیرشبکه فقط پروکسی 10.10.10.0/24 ایجاد کنید.
sudo tcpdump -i any net 10.10.10.0/24 -nn
به ADMIN اتصال داده → پایگاه داده → اتصالات → پایگاه داده postgres → تست بروید
پس از انتخاب Test Looker به پایگاه داده postgres متصل می شود که در زیر نشان داده شده است:
پاک کن
از یک ترمینال Cloud Shell، اجزای آزمایشگاه را حذف کنید
gcloud compute service-attachments delete onpremdatabase1-svc-attachment --region=$region -q
gcloud compute forwarding-rules delete producer-hybrid-neg-fr --region=$region -q
gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q
gcloud compute backend-services delete producer-backend-svc --region=$region -q
gcloud compute network-firewall-policies rules delete 2001 --firewall-policy looker-psc-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies associations delete --firewall-policy=looker-psc-demo-policy --name=looker-psc-demo --global-firewall-policy -q
gcloud compute network-firewall-policies delete looker-psc-demo-policy --global -q
gcloud compute routers nats delete on-prem-nat --router=on-prem-cr --router-region=$region -q
gcloud compute network-endpoint-groups delete on-prem-hybrid-neg --zone=$zone -q
gcloud compute addresses delete hybrid-neg-lb-ip --region=$region -q
gcloud compute vpn-tunnels delete looker-psc-demo-tunnel0 looker-psc-demo-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=$region -q
gcloud compute vpn-gateways delete looker-psc-demo-vpn-gw on-prem-vpn-gw --region=$region -q
gcloud compute routers delete looker-psc-demo-cr on-prem-cr --region=$region -q
gcloud compute instances delete postgres-database --zone=$zone -q
gcloud compute addresses delete on-prem-database1-ip --region=$region -q
gcloud compute networks subnets delete database-subnet --region=$region -q
gcloud compute network-firewall-policies rules delete 2001 --firewall-policy on-prem-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies rules delete 1000 --firewall-policy on-prem-demo-policy --global-firewall-policy -q
gcloud compute network-firewall-policies associations delete --firewall-policy=on-prem-demo-policy --name=on-prem-demo --global-firewall-policy -q
gcloud compute networks subnets delete $region-proxy-only-subnet --region=$region -q
gcloud compute networks subnets delete producer-psc-nat-subnet --region=$region -q
gcloud compute networks subnets delete producer-psc-fr-subnet --region=$region -q
gcloud compute networks delete on-prem-demo -q
gcloud compute networks delete looker-psc-demo -q
16. تبریک می گویم
تبریک میگوییم، شما با موفقیت اتصال به پایگاه داده داخلی را از طریق HA-VPN با استفاده از Looker Console که توسط Private Service Connect پشتیبانی میشود، پیکربندی و تأیید کردید.
شما زیرساخت تولیدکننده را ایجاد کردید، یاد گرفتید که چگونه یک NEG هیبریدی، سرویس تولید کننده و نقطه پایانی Looker PSC ایجاد کنید که امکان اتصال به سرویس تولیدکننده را فراهم می کند.
Cosmopup فکر می کند که نرم افزارهای کدنویسی عالی هستند!!
بعدش چی؟
برخی از این کدها را بررسی کنید...
- استفاده از Private Service Connect برای انتشار و مصرف خدمات
- با استفاده از Private Service Connect و یک متعادل کننده بار داخلی TCP Proxy از طریق شبکه هیبریدی به سرویس های اولیه متصل شوید.
- دسترسی به تمام کدهای منتشر شده Private Service Connect