Looker PSC Southbound HTTPS Internet NEG Gitlab Self-Managed,Looker PSC Southbound HTTPS Internet NEG Gitlab Self-Manage,Looker PSC Southbound HTTPS Internet NEG Gitlab Self-Manage,Looker PSC Southbound HTTPS Internet NEG Gitlab Self-Man

درباره این codelab
schedule۴۱ دقیقه
subjectآخرین به‌روزرسانی: ۱۳ فروردین ۱۴۰۴
account_circleنویسنده: Deepak Michael

در این کد لبه شما با استفاده از یک متعادل کننده بار پراکسی داخلی tcp و گروه نقطه پایانی شبکه اینترنتی (NEG) که از Looker PSC به عنوان مصرف کننده خدمات فراخوانی شده است، یک اتصال HTTPS به سمت جنوب را با محیط خود مدیریت GitLab خود انجام خواهید داد.

Private Service Connect یکی از قابلیت‌های شبکه Google Cloud است که به مصرف‌کنندگان اجازه می‌دهد به‌طور خصوصی از داخل شبکه VPC خود به خدمات مدیریت شده دسترسی داشته باشند. به طور مشابه، به تولیدکنندگان خدمات مدیریت شده اجازه می دهد تا این خدمات را در شبکه های VPC جداگانه خود میزبانی کنند و یک اتصال خصوصی به مصرف کنندگان خود ارائه دهند. به عنوان مثال، هنگامی که از Private Service Connect برای دسترسی به Looker استفاده می کنید، شما مصرف کننده سرویس هستید و Google تولید کننده سرویس است، همانطور که در شکل 1 مشخص شده است.

شکل 1.

145ea4672c3a3b14.png

دسترسی Southbound، که به عنوان PSC معکوس نیز شناخته می‌شود، به مصرف‌کننده اجازه می‌دهد تا یک سرویس منتشرشده به‌عنوان تولیدکننده ایجاد کند تا به Looker اجازه دسترسی به نقاط پایانی در محل، در VPC، به خدمات مدیریت شده و اینترنت را بدهد. همانطور که در شکل 2 مشخص شده است، بدون توجه به جایی که Looker PSC در کجا مستقر شده است، اتصالات به جنوب می توانند در هر منطقه مستقر شوند.

شکل 2.

61932a992ba9b6f4.png

چیزی که یاد خواهید گرفت

  • الزامات شبکه
  • یک سرویس تولید کننده Private Service Connect ایجاد کنید
  • یک نقطه پایانی Private Service Connect در Looker ایجاد کنید
  • اتصال به نمونه GitLab Self-Managed را ایجاد کنید

آنچه شما نیاز دارید

def88091b42bfe4d.png

2. آنچه می سازید

شما یک شبکه Producer، looker-psc-demo، برای استقرار متعادل کننده بار پراکسی tcp داخلی و اینترنت NEG که به عنوان یک سرویس از طریق Private Service Connect (PSC) منتشر می شود، ایجاد خواهید کرد. پس از انتشار، اقدامات زیر را برای تأیید اعتبار دسترسی به سرویس Producer انجام خواهید داد:

  • یک نقطه پایانی PSC در Looker مرتبط با پیوست سرویس تولیدکننده ایجاد کنید
  • از کنسول Looker برای ایجاد یک پروژه جدید و آزمایش اتصال HTTPS به محیط خود مدیریت GitLab خود استفاده کنید.

3. الزامات شبکه

در زیر تجزیه و تحلیل الزامات شبکه برای شبکه Producer آورده شده است، مصرف کننده در این Codelab نمونه Looker PSC است.

اجزاء

توضیحات

VPC (looker-psc-demo)

حالت سفارشی VPC

زیرشبکه PSC NAT

بسته‌های شبکه VPC مصرف‌کننده با استفاده از NAT منبع (SNAT) ترجمه می‌شوند تا آدرس‌های IP منبع اصلی آنها به آدرس‌های IP منبع از زیرشبکه NAT در شبکه VPC تولیدکننده تبدیل شود.

زیرشبکه قانون حمل و نقل PSC

برای تخصیص یک آدرس IP برای متعادل کننده بار پراکسی TCP داخلی منطقه ای استفاده می شود

زیرشبکه PSC NEG

برای تخصیص یک آدرس IP برای گروه نقطه پایانی شبکه استفاده می شود

زیرشبکه فقط پروکسی

به هر یک از پراکسی های load balancer یک آدرس IP داخلی اختصاص داده شده است. بسته های ارسال شده از یک پروکسی به یک ماشین مجازی پشتیبان یا نقطه پایانی دارای یک آدرس IP منبع از زیر شبکه فقط پراکسی هستند.

اینترنت NEG

منبعی که برای تعریف یک باطن خارجی برای متعادل کننده بار استفاده می شود که به عنوان FQDN پیکربندی شده است که نشان دهنده FQDN خود-مدیریت شده Gitlab است. اینترنت FQDN جستجوی DNS را در VPC برای وضوح انجام می دهد.

خدمات Backend

یک سرویس پشتیبان به عنوان پلی بین متعادل کننده بار و منابع باطن شما عمل می کند. در آموزش، سرویس Backend با اینترنت NEG مرتبط است.

4. توپولوژی Codelab

34950ed6ef504309.png

5. راه اندازی و الزامات

تنظیم محیط خود به خود

  1. به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
  • شناسه پروژه در تمام پروژه‌های Google Cloud منحصربه‌فرد است و تغییرناپذیر است (پس از تنظیم نمی‌توان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام PROJECT_ID شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، می‌توانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند.
  • برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
  1. در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورت‌حساب فراتر از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.

Cloud Shell را راه اندازی کنید

در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.

از Google Cloud Console ، روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

55efc1aaa7a4d3ad.png

تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:

7ffe5cbb04455448.png

این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 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]
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 internet-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

در داخل Cloud Shell، آدرس IP رزرو شده را مشاهده کنید.

gcloud compute addresses describe internet-neg-lb-ip \
  --region=$region | grep -i address:

خروجی نمونه:

user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

اینترنت NEG را راه اندازی کنید

یک Internet NEG ایجاد کنید و –network-endpoint-type را روی internet-fqdn-port تنظیم کنید (نام میزبان و پورتی که در آن می‌توان به پشتیبان خارجی شما دسترسی داشت).

در داخل Cloud Shell، یک NEG اینترنتی ایجاد کنید که برای دسترسی به نمونه Gitlab Self-Managed، gitlabonprem.com استفاده می شود.

gcloud compute network-endpoint-groups create gitlab-self-managed-internet-neg \
    --network-endpoint-type=INTERNET_FQDN_PORT \
    --network=looker-psc-demo \
    --region=$region

در داخل Cloud Shell، اینترنت NEG gitlab-self-managed-internet-neg را با FQDN gitlabonprem.com و پورت 443 به روز کنید.

gcloud compute network-endpoint-groups update gitlab-self-managed-internet-neg \
    --add-endpoint="fqdn=gitlabonprem.com,port=443" \
    --region=$region

قوانین فایروال شبکه را ایجاد کنید

برای اینکه به IAP اجازه دهید به نمونه های VM شما متصل شود، یک قانون فایروال ایجاد کنید که:

  • برای تمام نمونه های VM که می خواهید با استفاده از IAP در دسترس باشند، اعمال می شود.
  • به ترافیک ورودی از محدوده IP 35.235.240.0/20 اجازه می دهد. این محدوده شامل تمام آدرس های IP است که IAP برای ارسال TCP استفاده می کند.

در داخل Cloud Shell، قانون فایروال IAP را ایجاد کنید.

gcloud compute firewall-rules create ssh-iap-looker-psc-demo \
    --network looker-psc-demo \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

8. ایجاد سرویس تولید کننده

اجزای Load Balancer را ایجاد کنید

در داخل Cloud Shell موارد زیر را انجام دهید:

gcloud compute backend-services create producer-backend-svc  --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=gitlab-self-managed-internet-neg --network-endpoint-group-region=$region --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-gitlab-self-managed-fr\
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=looker-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=internet-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --ports=443

پیوست سرویس ایجاد کنید

در داخل Cloud Shell، پیوست سرویس، gitlab-self-managed-svc-attachment-https را با تأیید خودکار ایجاد کنید که امکان اتصال Looker Core به پیوست سرویس را فراهم می کند. اگر می‌خواهید دسترسی به پیوست سرویس را کنترل کنید، گزینه تأیید صریح پشتیبانی می‌شود.

gcloud compute service-attachments create gitlab-self-managed-svc-attachment-https --region=$region --producer-forwarding-rule=producer-gitlab-self-managed-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

در مرحله بعد، پیوست سرویس فهرست شده در selfLink URI را که با پروژه هایی برای پیکربندی نقطه پایانی PSC در Looker شروع می شود، دریافت کرده و یادداشت کنید.

selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/gitlab-self-managed-svc-attachment-https

در داخل Cloud Shell موارد زیر را انجام دهید:

gcloud compute service-attachments describe gitlab-self-managed-svc-attachment-https --region=$region

مثال:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2025-03-04T18:55:42.254-08:00'
description: ''
enableProxyProtocol: false
fingerprint: MlY9GLLGsgE=
id: '9103522880241140673'
kind: compute#serviceAttachment
name: gitlab-self-managed-svc-attachment-https
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '115404658846991336'
  low: '9103522880241140673'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/serviceAttachments/gitlab-self-managed-svc-attachment-https
targetService: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/forwardingRules/producer-gitlab-self-managed-fr

در Cloud Console به مسیر زیر بروید:

خدمات شبکه → اتصال سرویس خصوصی → خدمات منتشر شده

6fa12f77e4640b08.png

43987fabbabb41ad.png

9. یک اتصال نقطه پایانی PSC در Looker ایجاد کنید

در بخش بعدی، پیوست سرویس تولیدکنندگان را با Looker Core PSC از طریق استفاده از پرچم‌های –psc-service-attachment در Cloud Shell برای یک دامنه، مرتبط می‌کنید.

در داخل Cloud Shell، با به روز رسانی پارامترهای زیر برای مطابقت با محیط خود، انجمن psc را ایجاد کنید:

  • INSTANCE_NAME: نام نمونه Looker شما (هسته Google Cloud).
  • DOMAIN_1: gitlabonprem.com
  • SERVICE_ATTACHMENT_1: URI هنگام توصیف پیوست سرویس، gitlab-self-managed-svc-attachment-https گرفته می شود.
  • 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=gitlabonprem.com,attachment=projects/$project/regions/$region/serviceAttachments/gitlab-self-managed-svc-attachment-https \
--region=$region

در داخل Cloud Shell، سرویسAttachments را تأیید کنید وضعیت اتصال «پذیرفته شده است»، با Looker PSC INSTANCE_NAME خود به‌روزرسانی کنید

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": "cosmopup.looker.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.12.28",
  "name": "projects/$project/locations/$region/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
    "projects/$project/global/networks/looker-psc-demo"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "gitlabonprem.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/gitlab-self-managed-svc-attachment-https"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-08-30T17:47:33.440271635Z"
}

اعتبار سنجی نقطه پایانی PSC در Cloud Console

از Cloud Console می توانید اتصال PSC را تأیید کنید

در Cloud Console به مسیر زیر بروید:

Looker → Looker Instance → Details

2d4684d722d31e4b.png

2d600f33dc61cb6d.png

10. وضوح DNS

در بخش زیر، یک نمونه GCE ایجاد کنید و با انجام یک PING، وضوح DNS را برای نمونه Gitlab Self-Managed، gitlabonprem.com تأیید کنید. همانطور که انتظار می رفت، رزولوشن با نیاز به یک منطقه DNS خصوصی برای gitlabonprem.com شکست خواهد خورد.

11. یک نمونه GCE ایجاد کنید

در داخل Cloud Shell، نمونه GCE مورد استفاده برای اعتبار سنجی وضوح dns را ایجاد کنید.

gcloud compute instances create gce-dns-lookup \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=producer-psc-fr-subnet

با استفاده از IAP در Cloud Shell وارد consumer-vm شوید تا با انجام یک چرخش، اتصال به سرویس تولیدکننده را تأیید کنید. اگر مهلت زمانی وجود دارد دوباره امتحان کنید.

gcloud compute ssh gce-dns-lookup --project=$projectid --zone=us-central1-a --tunnel-through-iap

از سیستم عامل انجام یک PING به gitlabonprem.com، شکست انتظار می رود.

ping gitlabonprem.com

مثال:

user@gce-dns-lookup:~$ ping gitlabonprem.com
ping: gitlabonprem.com: Name or service not known

از سیستم عامل خارج شوید و به ترمینال Cloud Shell برگردید.

exit

12. یک منطقه DNS خصوصی ایجاد کنید

در داخل Cloud Shell، Cloud DNS Private Zone را ایجاد کنید.

gcloud dns --project=$projectid managed-zones create gitlab-self-managed --description="" --dns-name="gitlabonprem.com." --visibility="private" --networks="https://compute.googleapis.com/compute/v1/projects/$projectid/global/networks/looker-psc-demo"

در داخل Cloud Shell، رکورد A را ایجاد کنید که شامل آدرس IP نمونه Gitlab Self-Managed، 192.168.10.4 است.

gcloud dns --project=$projectid record-sets create gitlabonprem.com. --zone="gitlab-self-managed" --type="A" --ttl="300" --rrdatas="192.168.10.4"

با استفاده از IAP در Cloud Shell وارد consumer-vm شوید تا با انجام یک چرخش، اتصال به سرویس تولیدکننده را تأیید کنید. اگر مهلت زمانی وجود دارد دوباره امتحان کنید.

gcloud compute ssh gce-dns-lookup --project=$projectid --zone=us-central1-a --tunnel-through-iap

از سیستم عامل یک PING به gitlabonprem.com انجام دهید که به 192.168.10.4 حل می شود.

ping gitlabonprem.com

مثال:

user@gce-dns-lookup:~$ ping gitlabonprem.com
PING gitlabonprem.com (192.168.10.4) 56(84) bytes of data

از سیستم عامل خارج شوید و به ترمینال Cloud Shell برگردید.

exit

13. اتصال هیبریدی

FQDN gitlabonprem.com اکنون می تواند با آدرس IP خصوصی میزبانی شده در محل حل شود. در مرحله بعد، شبکه های ترکیبی (به عنوان مثال Interconnect، HA-VPN) باید بین Looker-psc-Demo VPC و شبکه درون محل پیکربندی شود تا اتصال فعال شود.

در زیر مراحل مورد نیاز برای ایجاد اتصال Hybrid NEG به on-premesis آمده است:

14. تست اتصال

در مراحل زیر، از Looker Console برای ایجاد پروژه‌ای برای اعتبارسنجی اتصال HTTPS به gitlabonprem.com با استفاده از روشی که در راه‌اندازی و آزمایش اتصال Git ذکر شده است، استفاده می‌کنید.

ae3b3884e8ef5db8.png

15. پاکسازی کنید

از یک ترمینال Cloud Shell، اجزای آزمایشگاه را حذف کنید

gcloud compute service-attachments delete gitlab-self-managed-svc-attachment-https --region=$region -q

gcloud compute forwarding-rules delete producer-gitlab-self-managed-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-endpoint-groups delete gitlab-self-managed-internet-neg --region=$region -q

gcloud compute instances delete gce-dns-lookup --zone=us-central1-a -q

gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-nat-subnet $region-proxy-only-subnet --region=$region -q

gcloud dns --project=$projectid record-sets delete gitlabonprem.com. --zone="gitlab-sel
f-managed" --type="A"

gcloud dns --project=$projectid managed-zones delete gitlab-self-managed 

gcloud compute networks delete looker-psc-demo -q

16. تبریک می گویم

تبریک می‌گوییم، شما با استفاده از کنسول Looker که توسط Private Service Connect پشتیبانی می‌شود، اتصال به نمونه خود مدیریت GitLab را پیکربندی و تأیید کردید.

زیرساخت تولیدکننده را ایجاد کردید، یاد گرفتید که چگونه یک Internet NEG، Producer Service و Looker PSC را ایجاد کنید که امکان اتصال به سرویس Producer را فراهم می کند.

Cosmopup فکر می کند که نرم افزارهای کدنویسی عالی هستند!!

c911c127bffdee57.jpeg

بعدش چی؟

برخی از این کدها را بررسی کنید...

ادامه مطلب و ویدیوها

اسناد مرجع

،
درباره این codelab
schedule۴۱ دقیقه
subjectآخرین به‌روزرسانی: ۱۳ فروردین ۱۴۰۴
account_circleنویسنده: Deepak Michael

1. مقدمه

در این کد لبه شما با استفاده از یک متعادل کننده بار پراکسی داخلی tcp و گروه نقطه پایانی شبکه اینترنتی (NEG) که از Looker PSC به عنوان مصرف کننده خدمات فراخوانی شده است، یک اتصال HTTPS به سمت جنوب را با محیط خود مدیریت GitLab خود انجام خواهید داد.

Private Service Connect یکی از قابلیت‌های شبکه Google Cloud است که به مصرف‌کنندگان اجازه می‌دهد به‌طور خصوصی از داخل شبکه VPC خود به خدمات مدیریت شده دسترسی داشته باشند. به طور مشابه، به تولیدکنندگان خدمات مدیریت شده اجازه می دهد تا این خدمات را در شبکه های VPC جداگانه خود میزبانی کنند و یک اتصال خصوصی به مصرف کنندگان خود ارائه دهند. به عنوان مثال، هنگامی که از Private Service Connect برای دسترسی به Looker استفاده می کنید، شما مصرف کننده سرویس هستید و Google تولید کننده سرویس است، همانطور که در شکل 1 مشخص شده است.

شکل 1.

145ea4672c3a3b14.png

دسترسی Southbound، که به عنوان PSC معکوس نیز شناخته می‌شود، به مصرف‌کننده اجازه می‌دهد تا یک سرویس منتشرشده به‌عنوان تولیدکننده ایجاد کند تا به Looker اجازه دسترسی به نقاط پایانی در محل، در VPC، به خدمات مدیریت شده و اینترنت را بدهد. همانطور که در شکل 2 مشخص شده است، بدون توجه به جایی که Looker PSC در کجا مستقر شده است، اتصالات به جنوب می توانند در هر منطقه مستقر شوند.

شکل 2.

61932a992ba9b6f4.png

چیزی که یاد خواهید گرفت

  • الزامات شبکه
  • یک سرویس تولید کننده Private Service Connect ایجاد کنید
  • یک نقطه پایانی Private Service Connect در Looker ایجاد کنید
  • اتصال به نمونه GitLab Self-Managed را ایجاد کنید

آنچه شما نیاز دارید

def88091b42bfe4d.png

2. آنچه می سازید

شما یک شبکه Producer، looker-psc-demo، برای استقرار متعادل کننده بار پراکسی tcp داخلی و اینترنت NEG که به عنوان یک سرویس از طریق Private Service Connect (PSC) منتشر می شود، ایجاد خواهید کرد. پس از انتشار، اقدامات زیر را برای تأیید اعتبار دسترسی به سرویس Producer انجام خواهید داد:

  • یک نقطه پایانی PSC در Looker مرتبط با پیوست سرویس تولیدکننده ایجاد کنید
  • از کنسول Looker برای ایجاد یک پروژه جدید و آزمایش اتصال HTTPS به محیط خود مدیریت GitLab خود استفاده کنید.

3. الزامات شبکه

در زیر تجزیه و تحلیل الزامات شبکه برای شبکه Producer آورده شده است، مصرف کننده در این Codelab نمونه Looker PSC است.

اجزاء

توضیحات

VPC (looker-psc-demo)

حالت سفارشی VPC

زیرشبکه PSC NAT

بسته‌های شبکه VPC مصرف‌کننده با استفاده از NAT منبع (SNAT) ترجمه می‌شوند تا آدرس‌های IP منبع اصلی آنها به آدرس‌های IP منبع از زیرشبکه NAT در شبکه VPC تولیدکننده تبدیل شود.

زیرشبکه قانون حمل و نقل PSC

برای تخصیص یک آدرس IP برای متعادل کننده بار پراکسی TCP داخلی منطقه ای استفاده می شود

زیرشبکه PSC NEG

برای تخصیص یک آدرس IP برای گروه نقطه پایانی شبکه استفاده می شود

زیرشبکه فقط پروکسی

به هر یک از پراکسی های load balancer یک آدرس IP داخلی اختصاص داده شده است. بسته های ارسال شده از یک پروکسی به یک ماشین مجازی پشتیبان یا نقطه پایانی دارای یک آدرس IP منبع از زیر شبکه فقط پراکسی هستند.

اینترنت NEG

منبعی که برای تعریف یک باطن خارجی برای متعادل کننده بار استفاده می شود که به عنوان FQDN پیکربندی شده است که نشان دهنده FQDN خود-مدیریت شده Gitlab است. اینترنت FQDN جستجوی DNS را در VPC برای وضوح انجام می دهد.

خدمات Backend

یک سرویس پشتیبان به عنوان پلی بین متعادل کننده بار و منابع باطن شما عمل می کند. در آموزش، سرویس Backend با اینترنت NEG مرتبط است.

4. توپولوژی Codelab

34950ed6ef504309.png

5. راه اندازی و الزامات

تنظیم محیط خود به خود

  1. به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
  • شناسه پروژه در تمام پروژه‌های Google Cloud منحصربه‌فرد است و تغییرناپذیر است (پس از تنظیم نمی‌توان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام PROJECT_ID شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، می‌توانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند.
  • برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
  1. در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورت‌حساب فراتر از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.

Cloud Shell را راه اندازی کنید

در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.

از Google Cloud Console ، روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

55efc1aaa7a4d3ad.png

تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:

7ffe5cbb04455448.png

این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 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]
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 internet-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

در داخل Cloud Shell، آدرس IP رزرو شده را مشاهده کنید.

gcloud compute addresses describe internet-neg-lb-ip \
  --region=$region | grep -i address:

خروجی نمونه:

user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

اینترنت NEG را راه اندازی کنید

یک Internet NEG ایجاد کنید و –network-endpoint-type را روی internet-fqdn-port تنظیم کنید (نام میزبان و پورتی که در آن می‌توان به پشتیبان خارجی شما دسترسی داشت).

در داخل Cloud Shell، یک NEG اینترنتی ایجاد کنید که برای دسترسی به نمونه Gitlab Self-Managed، gitlabonprem.com استفاده می شود.

gcloud compute network-endpoint-groups create gitlab-self-managed-internet-neg \
    --network-endpoint-type=INTERNET_FQDN_PORT \
    --network=looker-psc-demo \
    --region=$region

در داخل Cloud Shell، اینترنت NEG gitlab-self-managed-internet-neg را با FQDN gitlabonprem.com و پورت 443 به روز کنید.

gcloud compute network-endpoint-groups update gitlab-self-managed-internet-neg \
    --add-endpoint="fqdn=gitlabonprem.com,port=443" \
    --region=$region

قوانین فایروال شبکه را ایجاد کنید

برای اینکه به IAP اجازه دهید به نمونه های VM شما متصل شود، یک قانون فایروال ایجاد کنید که:

  • برای تمام نمونه های VM که می خواهید با استفاده از IAP در دسترس باشند، اعمال می شود.
  • به ترافیک ورودی از محدوده IP 35.235.240.0/20 اجازه می دهد. این محدوده شامل تمام آدرس های IP است که IAP برای ارسال TCP استفاده می کند.

در داخل Cloud Shell، قانون فایروال IAP را ایجاد کنید.

gcloud compute firewall-rules create ssh-iap-looker-psc-demo \
    --network looker-psc-demo \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

8. ایجاد سرویس تولید کننده

اجزای Load Balancer را ایجاد کنید

در داخل Cloud Shell موارد زیر را انجام دهید:

gcloud compute backend-services create producer-backend-svc  --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=gitlab-self-managed-internet-neg --network-endpoint-group-region=$region --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-gitlab-self-managed-fr\
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=looker-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=internet-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --ports=443

پیوست سرویس ایجاد کنید

در داخل Cloud Shell، پیوست سرویس، gitlab-self-managed-svc-attachment-https را با تأیید خودکار ایجاد کنید که امکان اتصال Looker Core به پیوست سرویس را فراهم می کند. اگر می‌خواهید دسترسی به پیوست سرویس را کنترل کنید، گزینه تأیید صریح پشتیبانی می‌شود.

gcloud compute service-attachments create gitlab-self-managed-svc-attachment-https --region=$region --producer-forwarding-rule=producer-gitlab-self-managed-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

در مرحله بعد، پیوست سرویس فهرست شده در selfLink URI را که با پروژه هایی برای پیکربندی نقطه پایانی PSC در Looker شروع می شود، دریافت کرده و یادداشت کنید.

selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/gitlab-self-managed-svc-attachment-https

در داخل Cloud Shell موارد زیر را انجام دهید:

gcloud compute service-attachments describe gitlab-self-managed-svc-attachment-https --region=$region

مثال:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2025-03-04T18:55:42.254-08:00'
description: ''
enableProxyProtocol: false
fingerprint: MlY9GLLGsgE=
id: '9103522880241140673'
kind: compute#serviceAttachment
name: gitlab-self-managed-svc-attachment-https
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '115404658846991336'
  low: '9103522880241140673'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/serviceAttachments/gitlab-self-managed-svc-attachment-https
targetService: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/forwardingRules/producer-gitlab-self-managed-fr

در Cloud Console به مسیر زیر بروید:

خدمات شبکه → اتصال سرویس خصوصی → خدمات منتشر شده

6fa12f77e4640b08.png

43987fabbabb41ad.png

9. یک اتصال نقطه پایانی PSC در Looker ایجاد کنید

در بخش بعدی، پیوست سرویس تولیدکنندگان را با Looker Core PSC از طریق استفاده از پرچم‌های –psc-service-attachment در Cloud Shell برای یک دامنه، مرتبط می‌کنید.

در داخل Cloud Shell، با به روز رسانی پارامترهای زیر برای مطابقت با محیط خود، انجمن psc را ایجاد کنید:

  • INSTANCE_NAME: نام نمونه Looker شما (هسته Google Cloud).
  • DOMAIN_1: gitlabonprem.com
  • SERVICE_ATTACHMENT_1: URI هنگام توصیف پیوست سرویس، gitlab-self-managed-svc-attachment-https گرفته می شود.
  • 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=gitlabonprem.com,attachment=projects/$project/regions/$region/serviceAttachments/gitlab-self-managed-svc-attachment-https \
--region=$region

در داخل Cloud Shell، سرویسAttachments را تأیید کنید وضعیت اتصال «پذیرفته شده است»، با Looker PSC INSTANCE_NAME خود به‌روزرسانی کنید

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": "cosmopup.looker.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.12.28",
  "name": "projects/$project/locations/$region/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
    "projects/$project/global/networks/looker-psc-demo"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "gitlabonprem.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/gitlab-self-managed-svc-attachment-https"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-08-30T17:47:33.440271635Z"
}

اعتبار سنجی نقطه پایانی PSC در Cloud Console

از Cloud Console می توانید اتصال PSC را تأیید کنید

در Cloud Console به مسیر زیر بروید:

Looker → Looker Instance → Details

2d4684d722d31e4b.png

2d600f33dc61cb6d.png

10. وضوح DNS

در بخش زیر، یک نمونه GCE ایجاد کنید و با انجام یک PING، وضوح DNS را برای نمونه Gitlab Self-Managed، gitlabonprem.com تأیید کنید. همانطور که انتظار می رفت، رزولوشن با نیاز به یک منطقه DNS خصوصی برای gitlabonprem.com شکست خواهد خورد.

11. یک نمونه GCE ایجاد کنید

در داخل Cloud Shell، نمونه GCE مورد استفاده برای اعتبار سنجی وضوح dns را ایجاد کنید.

gcloud compute instances create gce-dns-lookup \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=producer-psc-fr-subnet

با استفاده از IAP در Cloud Shell وارد consumer-vm شوید تا با انجام یک چرخش، اتصال به سرویس تولیدکننده را تأیید کنید. اگر مهلت زمانی وجود دارد دوباره امتحان کنید.

gcloud compute ssh gce-dns-lookup --project=$projectid --zone=us-central1-a --tunnel-through-iap

از سیستم عامل انجام یک PING به gitlabonprem.com، شکست انتظار می رود.

ping gitlabonprem.com

مثال:

user@gce-dns-lookup:~$ ping gitlabonprem.com
ping: gitlabonprem.com: Name or service not known

از سیستم عامل خارج شوید و به ترمینال Cloud Shell برگردید.

exit

12. یک منطقه DNS خصوصی ایجاد کنید

در داخل Cloud Shell، Cloud DNS Private Zone را ایجاد کنید.

gcloud dns --project=$projectid managed-zones create gitlab-self-managed --description="" --dns-name="gitlabonprem.com." --visibility="private" --networks="https://compute.googleapis.com/compute/v1/projects/$projectid/global/networks/looker-psc-demo"

در داخل Cloud Shell، رکورد A را ایجاد کنید که شامل آدرس IP نمونه Gitlab Self-Managed، 192.168.10.4 است.

gcloud dns --project=$projectid record-sets create gitlabonprem.com. --zone="gitlab-self-managed" --type="A" --ttl="300" --rrdatas="192.168.10.4"

با استفاده از IAP در Cloud Shell وارد consumer-vm شوید تا با انجام یک چرخش، اتصال به سرویس تولیدکننده را تأیید کنید. اگر مهلت زمانی وجود دارد دوباره امتحان کنید.

gcloud compute ssh gce-dns-lookup --project=$projectid --zone=us-central1-a --tunnel-through-iap

از سیستم عامل یک PING به gitlabonprem.com انجام دهید که به 192.168.10.4 حل می شود.

ping gitlabonprem.com

مثال:

user@gce-dns-lookup:~$ ping gitlabonprem.com
PING gitlabonprem.com (192.168.10.4) 56(84) bytes of data

از سیستم عامل خارج شوید و به ترمینال Cloud Shell برگردید.

exit

13. اتصال هیبریدی

FQDN gitlabonprem.com اکنون می تواند با آدرس IP خصوصی میزبانی شده در محل حل شود. در مرحله بعد، شبکه های ترکیبی (به عنوان مثال Interconnect، HA-VPN) باید بین Looker-psc-Demo VPC و شبکه درون محل پیکربندی شود تا اتصال فعال شود.

در زیر مراحل مورد نیاز برای ایجاد اتصال Hybrid NEG به on-premesis آمده است:

14. تست اتصال

در مراحل زیر، از Looker Console برای ایجاد پروژه‌ای برای اعتبارسنجی اتصال HTTPS به gitlabonprem.com با استفاده از روشی که در راه‌اندازی و آزمایش اتصال Git ذکر شده است، استفاده می‌کنید.

ae3b3884e8ef5db8.png

15. پاکسازی کنید

از یک ترمینال Cloud Shell، اجزای آزمایشگاه را حذف کنید

gcloud compute service-attachments delete gitlab-self-managed-svc-attachment-https --region=$region -q

gcloud compute forwarding-rules delete producer-gitlab-self-managed-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-endpoint-groups delete gitlab-self-managed-internet-neg --region=$region -q

gcloud compute instances delete gce-dns-lookup --zone=us-central1-a -q

gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-nat-subnet $region-proxy-only-subnet --region=$region -q

gcloud dns --project=$projectid record-sets delete gitlabonprem.com. --zone="gitlab-sel
f-managed" --type="A"

gcloud dns --project=$projectid managed-zones delete gitlab-self-managed 

gcloud compute networks delete looker-psc-demo -q

16. تبریک می گویم

تبریک می‌گوییم، شما با استفاده از کنسول Looker که توسط Private Service Connect پشتیبانی می‌شود، اتصال به نمونه خود مدیریت GitLab را پیکربندی و تأیید کردید.

زیرساخت تولیدکننده را ایجاد کردید، یاد گرفتید که چگونه یک Internet NEG، Producer Service و Looker PSC را ایجاد کنید که امکان اتصال به سرویس Producer را فراهم می کند.

Cosmopup فکر می کند که نرم افزارهای کدنویسی عالی هستند!!

c911c127bffdee57.jpeg

بعدش چی؟

برخی از این کدها را بررسی کنید...

ادامه مطلب و ویدیوها

اسناد مرجع

،
درباره این codelab
schedule۴۱ دقیقه
subjectآخرین به‌روزرسانی: ۱۳ فروردین ۱۴۰۴
account_circleنویسنده: Deepak Michael

1. مقدمه

در این کد لبه شما با استفاده از یک متعادل کننده بار پراکسی داخلی tcp و گروه نقطه پایانی شبکه اینترنتی (NEG) که از Looker PSC به عنوان مصرف کننده خدمات فراخوانی شده است، یک اتصال HTTPS به سمت جنوب را با محیط خود مدیریت GitLab خود انجام خواهید داد.

Private Service Connect یکی از قابلیت‌های شبکه Google Cloud است که به مصرف‌کنندگان اجازه می‌دهد به‌طور خصوصی از داخل شبکه VPC خود به خدمات مدیریت شده دسترسی داشته باشند. به طور مشابه، به تولیدکنندگان خدمات مدیریت شده اجازه می دهد تا این خدمات را در شبکه های VPC جداگانه خود میزبانی کنند و یک اتصال خصوصی به مصرف کنندگان خود ارائه دهند. به عنوان مثال، هنگامی که از Private Service Connect برای دسترسی به Looker استفاده می کنید، شما مصرف کننده سرویس هستید و Google تولید کننده سرویس است، همانطور که در شکل 1 مشخص شده است.

شکل 1.

145ea4672c3a3b14.png

دسترسی Southbound، که به عنوان PSC معکوس نیز شناخته می‌شود، به مصرف‌کننده اجازه می‌دهد تا یک سرویس منتشرشده به‌عنوان تولیدکننده ایجاد کند تا به Looker اجازه دسترسی به نقاط پایانی در محل، در VPC، به خدمات مدیریت شده و اینترنت را بدهد. همانطور که در شکل 2 مشخص شده است، بدون توجه به جایی که Looker PSC در کجا مستقر شده است، اتصالات به جنوب می توانند در هر منطقه مستقر شوند.

شکل 2.

61932a992ba9b6f4.png

چیزی که یاد خواهید گرفت

  • الزامات شبکه
  • یک سرویس تولید کننده Private Service Connect ایجاد کنید
  • یک نقطه پایانی Private Service Connect در Looker ایجاد کنید
  • اتصال به نمونه GitLab Self-Managed را ایجاد کنید

آنچه شما نیاز دارید

def88091b42bfe4d.png

2. آنچه می سازید

شما یک شبکه Producer، looker-psc-demo، برای استقرار متعادل کننده بار پراکسی tcp داخلی و اینترنت NEG که به عنوان یک سرویس از طریق Private Service Connect (PSC) منتشر می شود، ایجاد خواهید کرد. پس از انتشار، اقدامات زیر را برای تأیید اعتبار دسترسی به سرویس Producer انجام خواهید داد:

  • یک نقطه پایانی PSC در Looker مرتبط با پیوست سرویس تولیدکننده ایجاد کنید
  • از کنسول Looker برای ایجاد یک پروژه جدید و آزمایش اتصال HTTPS به محیط خود مدیریت GitLab خود استفاده کنید.

3. الزامات شبکه

در زیر تجزیه و تحلیل الزامات شبکه برای شبکه Producer آورده شده است، مصرف کننده در این Codelab نمونه Looker PSC است.

اجزاء

توضیحات

VPC (looker-psc-demo)

حالت سفارشی VPC

زیرشبکه PSC NAT

بسته‌های شبکه VPC مصرف‌کننده با استفاده از NAT منبع (SNAT) ترجمه می‌شوند تا آدرس‌های IP منبع اصلی آنها به آدرس‌های IP منبع از زیرشبکه NAT در شبکه VPC تولیدکننده تبدیل شود.

زیرشبکه قانون حمل و نقل PSC

برای تخصیص یک آدرس IP برای متعادل کننده بار پراکسی TCP داخلی منطقه ای استفاده می شود

زیرشبکه PSC NEG

برای تخصیص یک آدرس IP برای گروه نقطه پایانی شبکه استفاده می شود

زیرشبکه فقط پروکسی

به هر یک از پراکسی های load balancer یک آدرس IP داخلی اختصاص داده شده است. بسته های ارسال شده از یک پروکسی به یک VM با پس زمینه یا نقطه انتهایی دارای یک آدرس IP منبع از زیر شبکه فقط پروکسی هستند.

منفی اینترنت

منبعی که برای تعریف یک پس زمینه خارجی برای تعادل بار تنظیم شده به عنوان FQDN که نشان دهنده FQDN در فرضیه خود مدیریت GITLAB است ، استفاده می شود. اینترنت FQDN برای وضوح وضوح DNS را در VPC انجام می دهد.

سرویس پس زمینه

یک سرویس باطن به عنوان پلی بین تعادل بار و منابع باطن شما عمل می کند. در آموزش ، سرویس پس زمینه با اینترنت منفی همراه است.

4. توپولوژی Codelab

34950ed6ef504309.png

5. تنظیم و الزامات

تنظیم محیط خود گام

  1. وارد کنسول Google Cloud شوید و یک پروژه جدید ایجاد کنید یا از یک مورد موجود استفاده کنید. اگر قبلاً یک حساب کاربری Gmail یا Google ندارید ، باید یکی را ایجاد کنید .

fbef9caa1602edd0.png

A99B7ACE416376C4.PNG

5e3ff691252acf41.png

  • نام پروژه نام نمایشگر شرکت کنندگان این پروژه است. این یک رشته کاراکتر است که توسط Google API استفاده نمی شود. همیشه می توانید آن را به روز کنید.
  • شناسه پروژه در تمام پروژه های Google Cloud بی نظیر است و تغییر ناپذیر است (پس از تنظیم آن قابل تغییر نیست). کنسول ابر یک رشته منحصر به فرد را ایجاد می کند. معمولاً اهمیتی نمی دهید که چیست. در اکثر CodeLabs ، باید شناسه پروژه خود را (که به طور معمول به عنوان PROJECT_ID مشخص می شود) ارجاع دهید. اگر شناسه تولید شده را دوست ندارید ، ممکن است یک تصادفی دیگر ایجاد کنید. از طرف دیگر ، می توانید خودتان را امتحان کنید و ببینید که آیا در دسترس است یا خیر. بعد از این مرحله قابل تغییر نیست و برای مدت زمان پروژه باقی می ماند.
  • برای اطلاعات شما ، یک مقدار سوم ، یک شماره پروژه وجود دارد که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بدانید.
  1. در مرحله بعد ، شما باید صورتحساب را در کنسول ابری برای استفاده از منابع ابری/API فعال کنید . در صورت وجود هر چیزی از طریق این CodeLab هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از صدور صورتحساب فراتر از این آموزش ، می توانید منابعی را که ایجاد کرده اید حذف کرده یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری USD هستند.

پوسته ابر را شروع کنید

در حالی که Google Cloud می تواند از راه دور از لپ تاپ شما کار کند ، در این CodeLab شما از Google Cloud Shell استفاده می کنید ، یک محیط خط فرمان که در ابر اجرا می شود.

از کنسول Google Cloud ، روی نماد Cloud Shell در نوار ابزار بالا راست کلیک کنید:

55EFC1AA7A4D3AD.PNG

فقط باید چند لحظه طول بکشد و به محیط زیست ارتباط برقرار کند. پس از اتمام ، باید چیزی شبیه به این را ببینید:

7FFE5CBB04455448.PNG

این دستگاه مجازی با تمام ابزارهای توسعه مورد نیاز شما بارگیری شده است. این یک دایرکتوری خانگی مداوم 5 گیگابایتی را ارائه می دهد ، و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی تقویت می کند. تمام کارهای شما در این CodeLab را می توان در یک مرورگر انجام داد. نیازی به نصب چیزی ندارید.

6 قبل از شروع کار

API ها را فعال کنید

در داخل پوسته ابر ، اطمینان حاصل کنید که شناسه پروژه شما تنظیم شده است:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region

تمام خدمات لازم را فعال کنید:

gcloud services enable compute.googleapis.com

7. ایجاد شبکه VPC تولید کننده

شبکه VPC

در داخل پوسته ابر ، موارد زیر را انجام دهید:

gcloud compute networks create looker-psc-demo --subnet-mode custom

ایجاد زیرشبکه

زیر شبکه PSC به منظور ترجمه آدرس شبکه با پیوست سرویس PSC همراه خواهد بود.

در داخل پوسته ابر ، زیر شبکه 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

در داخل پوسته ابر ، قانون حمل و نقل تولید کننده را ایجاد کنید:

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

در داخل پوسته ابر ، تولید کننده منطقه ای را فقط زیر شبکه ایجاد کنید:

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 Load Balancer را رزرو کنید

در داخل پوسته ابر ، یک آدرس IP داخلی را برای متعادل کننده بار رزرو کنید:

gcloud compute addresses create internet-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

در داخل پوسته ابر ، آدرس IP رزرو شده را مشاهده کنید.

gcloud compute addresses describe internet-neg-lb-ip \
  --region=$region | grep -i address:

خروجی نمونه:

user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

NEG اینترنت را تنظیم کنید

یک NEG اینترنت ایجاد کنید ، و نوع –network-endpoint را به اینترنت-fqdn-port تنظیم کنید (نام میزبان و پورت که در آن می توان به پس زمینه خارجی شما رسید).

در داخل Cloud Shell ، یک NEG اینترنت ایجاد کنید که برای دسترسی به نمونه خود مدیریت GitLab ، Gitlabonprem.com استفاده می شود.

gcloud compute network-endpoint-groups create gitlab-self-managed-internet-neg \
    --network-endpoint-type=INTERNET_FQDN_PORT \
    --network=looker-psc-demo \
    --region=$region

در داخل Cloud Shell ، اینترنت Neg Gitlab-Self-Internet-NEG را با FQDN Gitlabonprem.com و بندر 443 به روز کنید

gcloud compute network-endpoint-groups update gitlab-self-managed-internet-neg \
    --add-endpoint="fqdn=gitlabonprem.com,port=443" \
    --region=$region

قوانین فایروال شبکه را ایجاد کنید

برای اینکه IAP به موارد VM خود متصل شود ، یک قانون فایروال ایجاد کنید که:

  • برای تمام موارد VM که می خواهید با استفاده از IAP قابل دسترسی باشید ، اعمال می شود.
  • ترافیک Ingress را از محدوده IP 35.235.240.0/20 می گذارد. این محدوده شامل تمام آدرس های IP است که IAP برای حمل و نقل TCP استفاده می کند.

در داخل پوسته ابر ، قانون فایروال IAP را ایجاد کنید.

gcloud compute firewall-rules create ssh-iap-looker-psc-demo \
    --network looker-psc-demo \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

8. ایجاد سرویس تولید کننده

اجزای متعادل کننده بار را ایجاد کنید

در داخل پوسته ابر ، موارد زیر را انجام دهید:

gcloud compute backend-services create producer-backend-svc  --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=gitlab-self-managed-internet-neg --network-endpoint-group-region=$region --region=$region

در Cloud Shell ، یک پروکسی TCP Target را ایجاد کنید تا درخواست های خود را به سرویس باطن خود هدایت کنید:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=producer-backend-svc  \
      --region=$region

در نحو زیر ، یک قانون حمل و نقل (متعادل کننده بار پروکسی داخلی TCP) ایجاد کنید.

در Cloud Shell ، موارد زیر را انجام دهید:

gcloud compute forwarding-rules create producer-gitlab-self-managed-fr\
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=looker-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=internet-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --ports=443

ایجاد ضمیمه خدمات

در داخل Cloud Shell ، Service Attachment را ایجاد کنید ، GitLab-Self-SVC-Attachment-HTTPS ، با تأیید خودکار که امکان اتصال اصلی را به ضمیمه سرویس می دهد. اگر می خواهید دسترسی به ضمیمه سرویس را کنترل کنید ، گزینه مصوبات صریح پشتیبانی می شود.

gcloud compute service-attachments create gitlab-self-managed-svc-attachment-https --region=$region --producer-forwarding-rule=producer-gitlab-self-managed-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

در مرحله بعد ، پیوست سرویس ذکر شده در Selflink URI را با پروژه هایی برای پیکربندی نقطه انتهایی PSC در Looker دریافت و یادداشت کنید.

SelfLink: پروژه ها/<-your-jout- id>/مناطق/<ty-region>/serviceattachments/gitlab-self-svc-attachment-https

در داخل پوسته ابر ، موارد زیر را انجام دهید:

gcloud compute service-attachments describe gitlab-self-managed-svc-attachment-https --region=$region

مثال:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2025-03-04T18:55:42.254-08:00'
description: ''
enableProxyProtocol: false
fingerprint: MlY9GLLGsgE=
id: '9103522880241140673'
kind: compute#serviceAttachment
name: gitlab-self-managed-svc-attachment-https
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '115404658846991336'
  low: '9103522880241140673'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/serviceAttachments/gitlab-self-managed-svc-attachment-https
targetService: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/forwardingRules/producer-gitlab-self-managed-fr

در کنسول ابر ، به:

خدمات شبکه → خدمات خصوصی اتصال → خدمات منتشر شده

6fa12f77e4640b08.png

43987fababbb41ad.png

9. یک اتصال نقطه پایانی PSC را در Looker ایجاد کنید

در بخش زیر ، شما پیوست خدمات تولید کنندگان را با Flags PSC استفاده از Looker Core PSC از طریق پرچم های استفاده از خدمات-PSC-Service در پوسته ابر برای یک دامنه واحد مرتبط خواهید کرد.

در داخل Cloud Shell ، با به روزرسانی پارامترهای زیر ، انجمن PSC را ایجاد کنید تا با محیط خود مطابقت داشته باشید:

  • sustance_name: نام Looker (Google Cloud Core).
  • DOMAIN_1: gitlabonprem.com
  • Service_Attachment_1: URI در هنگام توصیف دلبستگی سرویس ، Gitlab-Self-SVC-Attachment-HTTPS اسیر شد.
  • منطقه: منطقه ای که در آن نمونه Looker (Google Cloud Core) میزبان است.

در داخل پوسته ابر ، موارد زیر را انجام دهید:

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=gitlabonprem.com,attachment=projects/$project/regions/$region/serviceAttachments/gitlab-self-managed-svc-attachment-https \
--region=$region

در داخل پوسته ابری ، تأیید کنید که serviceattachments ConnectionStatus "پذیرفته شده" است ، با Looker PSC Instance_Name خود به روز کنید

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": "cosmopup.looker.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.12.28",
  "name": "projects/$project/locations/$region/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
    "projects/$project/global/networks/looker-psc-demo"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "gitlabonprem.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/gitlab-self-managed-svc-attachment-https"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-08-30T17:47:33.440271635Z"
}

نقطه پایانی PSC را در کنسول ابر تأیید کنید

از کنسول ابر می توانید اتصال PSC را تأیید کنید

در کنسول ابر ، به:

Looker → نمونه نگاه کننده → جزئیات

2d4684d722d31e4b.png

2d600f33dc61cb6d.png

10. وضوح DNS

در بخش زیر ، یک نمونه GCE ایجاد کنید و وضوح DNS را به نمونه خود مدیریت Gitlab ، Gitlabonprem.com با انجام پینگ اعتبار دهید. همانطور که انتظار می رود ، وضوح لازم برای نیاز به یک منطقه DNS خصوصی برای gitlabonprem.com خواهد بود.

11. یک نمونه GCE ایجاد کنید

در داخل پوسته ابر ، نمونه GCE را برای اعتبارسنجی وضوح DNS ایجاد کنید.

gcloud compute instances create gce-dns-lookup \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=producer-psc-fr-subnet

با استفاده از IAP در Cloud Shell وارد Consumer-VM شوید تا بتوانید با انجام یک حلقه ، اتصال به سرویس تولید کننده را تأیید کنید. در صورت وجود زمان ، دوباره امتحان کنید.

gcloud compute ssh gce-dns-lookup --project=$projectid --zone=us-central1-a --tunnel-through-iap

از سیستم عامل پینگ تا gitlabonprem.com ، شکست پیش بینی می شود.

ping gitlabonprem.com

مثال:

user@gce-dns-lookup:~$ ping gitlabonprem.com
ping: gitlabonprem.com: Name or service not known

از سیستم عامل خارج شوید و شما را به ترمینال پوسته ابر برگردانید.

exit

12. یک منطقه DNS خصوصی ایجاد کنید

در داخل پوسته ابر ، منطقه خصوصی Cloud DNS را ایجاد کنید.

gcloud dns --project=$projectid managed-zones create gitlab-self-managed --description="" --dns-name="gitlabonprem.com." --visibility="private" --networks="https://compute.googleapis.com/compute/v1/projects/$projectid/global/networks/looker-psc-demo"

در داخل Cloud Shell ، یک رکورد متشکل از آدرس IP نمونه خود مدیریت Gitlab ، 192.168.10.4 ایجاد کنید.

gcloud dns --project=$projectid record-sets create gitlabonprem.com. --zone="gitlab-self-managed" --type="A" --ttl="300" --rrdatas="192.168.10.4"

با استفاده از IAP در Cloud Shell وارد Consumer-VM شوید تا بتوانید با انجام یک حلقه ، اتصال به سرویس تولید کننده را تأیید کنید. در صورت وجود زمان ، دوباره امتحان کنید.

gcloud compute ssh gce-dns-lookup --project=$projectid --zone=us-central1-a --tunnel-through-iap

از سیستم عامل پینگ به gitlabonprem.com را انجام دهید ، که تا 192.168.10.4 حل می شود.

ping gitlabonprem.com

مثال:

user@gce-dns-lookup:~$ ping gitlabonprem.com
PING gitlabonprem.com (192.168.10.4) 56(84) bytes of data

از سیستم عامل خارج شوید و شما را به ترمینال پوسته ابر برگردانید.

exit

13. اتصال ترکیبی

FQDN gitlabonprem.com اکنون می تواند با آدرس IP خصوصی که میزبان محل برگزاری آن هستند ، حل شود. در مرحله بعد ، شبکه هیبریدی (به عنوان مثال Interconnect ، HA-VPN) باید بین Looker-PSC-DEMO VPC و شبکه On-Premises پیکربندی شود تا اتصال را فعال کند.

در زیر مراحل لازم برای ایجاد اتصال NEG ترکیبی به فرضیه وجود دارد:

14. تست اتصال

در مراحل زیر ، از کنسول Looker برای ایجاد یک پروژه برای اعتبارسنجی اتصال HTTPS به GitLabonPrem.com با استفاده از روش بیان شده در تنظیم و آزمایش اتصال GIT استفاده خواهید کرد.

AE3B3884E8EF5DB8.PNG

15. تمیز کنید

از یک ترمینال پوسته ابری اجزای آزمایشگاه حذف

gcloud compute service-attachments delete gitlab-self-managed-svc-attachment-https --region=$region -q

gcloud compute forwarding-rules delete producer-gitlab-self-managed-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-endpoint-groups delete gitlab-self-managed-internet-neg --region=$region -q

gcloud compute instances delete gce-dns-lookup --zone=us-central1-a -q

gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-nat-subnet $region-proxy-only-subnet --region=$region -q

gcloud dns --project=$projectid record-sets delete gitlabonprem.com. --zone="gitlab-sel
f-managed" --type="A"

gcloud dns --project=$projectid managed-zones delete gitlab-self-managed 

gcloud compute networks delete looker-psc-demo -q

16. تبریک می گویم

تبریک می گویم ، شما با استفاده از کنسول Looker که توسط سرویس خصوصی اتصال به شما متصل شده است ، اتصال را با موفقیت به یک نمونه خود مدیریت GitLab پیکربندی و تأیید کرده اید.

شما زیرساخت های تولید کننده را ایجاد کرده اید ، یاد گرفتید که چگونه یک اینترنت NEG ، سرویس تولید کننده و نقطه پایانی Looker PSC ایجاد کنید که امکان اتصال به سرویس تولید کننده را فراهم می کند.

Cosmopup فکر می کند CodeLabs عالی است !!

c911c127bffdee57.jpeg

بعدش چی؟

برخی از این codelabs را بررسی کنید ...

خواندن و فیلم های بیشتر

اسناد مرجع

،
درباره این codelab
schedule۴۱ دقیقه
subjectآخرین به‌روزرسانی: ۱۳ فروردین ۱۴۰۴
account_circleنویسنده: Deepak Michael

1. مقدمه

در این CodeLab شما یک اتصال HTTPS با مرز جنوبی به محیط خود مدیریت GitLab خود را با استفاده از یک متعادل کننده بار داخلی TCP و گروه پایان شبکه اینترنتی (NEG) که از Looker PSC به عنوان یک مصرف کننده سرویس استفاده می شود ، انجام می دهید.

سرویس خصوصی Connect قابلیت شبکه Google Cloud است که به مصرف کنندگان این امکان را می دهد تا از طریق شبکه VPC خود به خدمات مدیریت شده خصوصی دسترسی پیدا کنند. به طور مشابه، به تولیدکنندگان خدمات مدیریت شده اجازه می دهد تا این خدمات را در شبکه های VPC جداگانه خود میزبانی کنند و یک اتصال خصوصی به مصرف کنندگان خود ارائه دهند. به عنوان مثال ، هنگامی که از خدمات خصوصی برای دسترسی به Access Connect استفاده می کنید ، شما مصرف کننده سرویس هستید و Google تولید کننده خدمات است ، همانطور که در شکل 1 برجسته شده است.

شکل 1.

145EA4672C3A3B14.PNG

دسترسی Southbound ، که به عنوان PSC معکوس نیز شناخته می شود ، مصرف کننده را قادر می سازد تا یک سرویس منتشر شده را به عنوان تولید کننده ایجاد کند تا امکان دسترسی به نقاط پایانی را در یک VPC ، به خدمات مدیریت شده و اینترنت فراهم کند. بدون توجه به محل استقرار PSC ، همانطور که در شکل 2 برجسته شده است ، می توان اتصالات جنوب را در هر منطقه مستقر کرد ، همانطور که در شکل 2 برجسته شده است.

شکل 2.

61932a992ba9b6f4.png

چیزی که یاد خواهید گرفت

  • الزامات شبکه
  • ایجاد یک سرویس خصوصی Connect Service Connect
  • ایجاد یک سرویس خصوصی Connect Endpoint در Looker
  • اتصال به نمونه خود مدیریت Gitlab برقرار کنید

آنچه شما نیاز دارید

def88091b42bfe4d.png

2. آنچه را می سازید

شما یک شبکه تولید کننده ، Looker-PSC-DEMO را ایجاد می کنید تا از طریق تعادل بار و NEG اینترنت TCP داخلی TCP و NEG که به عنوان یک سرویس از طریق سرویس خصوصی Connect (PSC) منتشر شده است ، مستقر کنید. پس از انتشار ، اقدامات زیر را برای اعتبارسنجی دسترسی به سرویس تولید کننده انجام می دهید:

  • یک نقطه پایانی PSC را در Looker همراه با ضمیمه سرویس تولید کننده ایجاد کنید
  • از کنسول Looker برای ایجاد یک پروژه جدید و آزمایش اتصال HTTPS به محیط خود مدیریت GitLab خود استفاده کنید.

3. الزامات شبکه

در زیر تجزیه و تحلیل نیازهای شبکه برای شبکه تولید کننده ، مصرف کننده در این CodeLab نمونه PSC Looker است.

اجزاء

توضیحات

VPC (Looker-PSC-DEMO)

حالت سفارشی VPC

PSC Nat Subnet

بسته های شبکه VPC مصرف کننده با استفاده از منبع NAT (SNAT) ترجمه می شوند تا آدرس IP منبع اصلی آنها به آدرس IP منبع از زیر شبکه NAT در شبکه VPC تولید کننده تبدیل شود.

Subnet قانون حمل و نقل PSC

برای تخصیص آدرس IP برای متعادل کننده بار پروکسی داخلی منطقه ای استفاده می شود

PSC NEG Subnet

برای تخصیص آدرس IP برای گروه پایانی شبکه استفاده می شود

پروکسی فقط زیر شبکه

به هر یک از پروکسی های متعادل کننده بار ، آدرس IP داخلی اختصاص داده می شود. بسته های ارسال شده از یک پروکسی به یک VM با پس زمینه یا نقطه انتهایی دارای یک آدرس IP منبع از زیر شبکه فقط پروکسی هستند.

منفی اینترنت

منبعی که برای تعریف یک پس زمینه خارجی برای تعادل بار تنظیم شده به عنوان FQDN که نشان دهنده FQDN در فرضیه خود مدیریت GITLAB است ، استفاده می شود. اینترنت FQDN برای وضوح وضوح DNS را در VPC انجام می دهد.

سرویس پس زمینه

یک سرویس باطن به عنوان پلی بین تعادل بار و منابع باطن شما عمل می کند. در آموزش ، سرویس پس زمینه با اینترنت منفی همراه است.

4. توپولوژی Codelab

34950ed6ef504309.png

5. تنظیم و الزامات

تنظیم محیط خود گام

  1. وارد کنسول Google Cloud شوید و یک پروژه جدید ایجاد کنید یا از یک مورد موجود استفاده کنید. اگر قبلاً یک حساب کاربری Gmail یا Google ندارید ، باید یکی را ایجاد کنید .

fbef9caa1602edd0.png

A99B7ACE416376C4.PNG

5e3ff691252acf41.png

  • نام پروژه نام نمایشگر شرکت کنندگان این پروژه است. این یک رشته کاراکتر است که توسط Google API استفاده نمی شود. همیشه می توانید آن را به روز کنید.
  • شناسه پروژه در تمام پروژه های Google Cloud بی نظیر است و تغییر ناپذیر است (پس از تنظیم آن قابل تغییر نیست). کنسول ابر یک رشته منحصر به فرد را ایجاد می کند. معمولاً اهمیتی نمی دهید که چیست. در اکثر CodeLabs ، باید شناسه پروژه خود را (که به طور معمول به عنوان PROJECT_ID مشخص می شود) ارجاع دهید. اگر شناسه تولید شده را دوست ندارید ، ممکن است یک تصادفی دیگر ایجاد کنید. از طرف دیگر ، می توانید خودتان را امتحان کنید و ببینید که آیا در دسترس است یا خیر. بعد از این مرحله قابل تغییر نیست و برای مدت زمان پروژه باقی می ماند.
  • برای اطلاعات شما ، یک مقدار سوم ، یک شماره پروژه وجود دارد که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بدانید.
  1. در مرحله بعد ، شما باید صورتحساب را در کنسول ابری برای استفاده از منابع ابری/API فعال کنید . در صورت وجود هر چیزی از طریق این CodeLab هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از صدور صورتحساب فراتر از این آموزش ، می توانید منابعی را که ایجاد کرده اید حذف کرده یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری USD هستند.

پوسته ابر را شروع کنید

در حالی که Google Cloud می تواند از راه دور از لپ تاپ شما کار کند ، در این CodeLab شما از Google Cloud Shell استفاده می کنید ، یک محیط خط فرمان که در ابر اجرا می شود.

از کنسول Google Cloud ، روی نماد Cloud Shell در نوار ابزار بالا راست کلیک کنید:

55EFC1AA7A4D3AD.PNG

فقط باید چند لحظه طول بکشد و به محیط زیست ارتباط برقرار کند. پس از اتمام ، باید چیزی شبیه به این را ببینید:

7FFE5CBB04455448.PNG

این دستگاه مجازی با تمام ابزارهای توسعه مورد نیاز شما بارگیری شده است. این یک دایرکتوری خانگی مداوم 5 گیگابایتی را ارائه می دهد ، و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی تقویت می کند. تمام کارهای شما در این CodeLab را می توان در یک مرورگر انجام داد. نیازی به نصب چیزی ندارید.

6 قبل از شروع کار

API ها را فعال کنید

در داخل پوسته ابر ، اطمینان حاصل کنید که شناسه پروژه شما تنظیم شده است:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region

تمام خدمات لازم را فعال کنید:

gcloud services enable compute.googleapis.com

7. ایجاد شبکه VPC تولید کننده

شبکه VPC

در داخل پوسته ابر ، موارد زیر را انجام دهید:

gcloud compute networks create looker-psc-demo --subnet-mode custom

ایجاد زیرشبکه

زیر شبکه PSC به منظور ترجمه آدرس شبکه با پیوست سرویس PSC همراه خواهد بود.

در داخل پوسته ابر ، زیر شبکه 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

در داخل پوسته ابر ، قانون حمل و نقل تولید کننده را ایجاد کنید:

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

در داخل پوسته ابر ، تولید کننده منطقه ای را فقط زیر شبکه ایجاد کنید:

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 Load Balancer را رزرو کنید

در داخل پوسته ابر ، یک آدرس IP داخلی را برای متعادل کننده بار رزرو کنید:

gcloud compute addresses create internet-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

در داخل پوسته ابر ، آدرس IP رزرو شده را مشاهده کنید.

gcloud compute addresses describe internet-neg-lb-ip \
  --region=$region | grep -i address:

خروجی نمونه:

user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

NEG اینترنت را تنظیم کنید

یک NEG اینترنت ایجاد کنید ، و نوع –network-endpoint را به اینترنت-fqdn-port تنظیم کنید (نام میزبان و پورت که در آن می توان به پس زمینه خارجی شما رسید).

در داخل Cloud Shell ، یک NEG اینترنت ایجاد کنید که برای دسترسی به نمونه خود مدیریت GitLab ، Gitlabonprem.com استفاده می شود.

gcloud compute network-endpoint-groups create gitlab-self-managed-internet-neg \
    --network-endpoint-type=INTERNET_FQDN_PORT \
    --network=looker-psc-demo \
    --region=$region

در داخل Cloud Shell ، اینترنت Neg Gitlab-Self-Internet-NEG را با FQDN Gitlabonprem.com و بندر 443 به روز کنید

gcloud compute network-endpoint-groups update gitlab-self-managed-internet-neg \
    --add-endpoint="fqdn=gitlabonprem.com,port=443" \
    --region=$region

قوانین فایروال شبکه را ایجاد کنید

برای اینکه IAP به موارد VM خود متصل شود ، یک قانون فایروال ایجاد کنید که:

  • برای تمام موارد VM که می خواهید با استفاده از IAP قابل دسترسی باشید ، اعمال می شود.
  • ترافیک Ingress را از محدوده IP 35.235.240.0/20 می گذارد. این محدوده شامل تمام آدرس های IP است که IAP برای حمل و نقل TCP استفاده می کند.

در داخل پوسته ابر ، قانون فایروال IAP را ایجاد کنید.

gcloud compute firewall-rules create ssh-iap-looker-psc-demo \
    --network looker-psc-demo \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

8. ایجاد سرویس تولید کننده

اجزای متعادل کننده بار را ایجاد کنید

در داخل پوسته ابر ، موارد زیر را انجام دهید:

gcloud compute backend-services create producer-backend-svc  --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=gitlab-self-managed-internet-neg --network-endpoint-group-region=$region --region=$region

در Cloud Shell ، یک پروکسی TCP هدف را برای هدایت درخواست ها به سرویس باطن خود ایجاد کنید:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=producer-backend-svc  \
      --region=$region

در نحو زیر ، یک قانون حمل و نقل (متعادل کننده بار پروکسی داخلی TCP) ایجاد کنید.

در Cloud Shell ، موارد زیر را انجام دهید:

gcloud compute forwarding-rules create producer-gitlab-self-managed-fr\
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=looker-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=internet-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --ports=443

ایجاد ضمیمه خدمات

در داخل Cloud Shell ، Service Attachment را ایجاد کنید ، GitLab-Self-SVC-Attachment-HTTPS ، با تأیید خودکار که امکان اتصال اصلی را به ضمیمه سرویس می دهد. اگر می خواهید دسترسی به ضمیمه سرویس را کنترل کنید ، گزینه مصوبات صریح پشتیبانی می شود.

gcloud compute service-attachments create gitlab-self-managed-svc-attachment-https --region=$region --producer-forwarding-rule=producer-gitlab-self-managed-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

در مرحله بعد ، پیوست سرویس ذکر شده در Selflink URI را با پروژه هایی برای پیکربندی نقطه انتهایی PSC در Looker دریافت و یادداشت کنید.

SelfLink: پروژه ها/<-your-jout- id>/مناطق/<ty-region>/serviceattachments/gitlab-self-svc-attachment-https

در داخل پوسته ابر ، موارد زیر را انجام دهید:

gcloud compute service-attachments describe gitlab-self-managed-svc-attachment-https --region=$region

مثال:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2025-03-04T18:55:42.254-08:00'
description: ''
enableProxyProtocol: false
fingerprint: MlY9GLLGsgE=
id: '9103522880241140673'
kind: compute#serviceAttachment
name: gitlab-self-managed-svc-attachment-https
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '115404658846991336'
  low: '9103522880241140673'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/serviceAttachments/gitlab-self-managed-svc-attachment-https
targetService: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/forwardingRules/producer-gitlab-self-managed-fr

در کنسول ابر ، به:

خدمات شبکه → خدمات خصوصی اتصال → خدمات منتشر شده

6fa12f77e4640b08.png

43987fababbb41ad.png

9. یک اتصال نقطه پایانی PSC را در Looker ایجاد کنید

در بخش زیر ، شما پیوست خدمات تولید کنندگان را با Flags PSC استفاده از Looker Core PSC از طریق پرچم های استفاده از خدمات-PSC-Service در پوسته ابر برای یک دامنه واحد مرتبط خواهید کرد.

در داخل Cloud Shell ، با به روزرسانی پارامترهای زیر ، انجمن PSC را ایجاد کنید تا با محیط خود مطابقت داشته باشید:

  • sustance_name: نام Looker (Google Cloud Core).
  • DOMAIN_1: gitlabonprem.com
  • Service_Attachment_1: URI در هنگام توصیف دلبستگی سرویس ، Gitlab-Self-SVC-Attachment-HTTPS اسیر شد.
  • منطقه: منطقه ای که در آن نمونه Looker (Google Cloud Core) میزبان است.

در داخل پوسته ابر ، موارد زیر را انجام دهید:

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=gitlabonprem.com,attachment=projects/$project/regions/$region/serviceAttachments/gitlab-self-managed-svc-attachment-https \
--region=$region

در داخل پوسته ابری ، تأیید کنید که serviceattachments ConnectionStatus "پذیرفته شده" است ، با Looker PSC Instance_Name خود به روز کنید

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": "cosmopup.looker.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.12.28",
  "name": "projects/$project/locations/$region/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
    "projects/$project/global/networks/looker-psc-demo"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "gitlabonprem.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/gitlab-self-managed-svc-attachment-https"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-08-30T17:47:33.440271635Z"
}

نقطه پایانی PSC را در کنسول ابر تأیید کنید

از کنسول ابر می توانید اتصال PSC را تأیید کنید

در کنسول ابر ، به:

Looker → نمونه نگاه کننده → جزئیات

2d4684d722d31e4b.png

2d600f33dc61cb6d.png

10. وضوح DNS

در بخش زیر ، یک نمونه GCE ایجاد کنید و وضوح DNS را به نمونه خود مدیریت Gitlab ، Gitlabonprem.com با انجام پینگ اعتبار دهید. همانطور که انتظار می رود ، وضوح لازم برای نیاز به یک منطقه DNS خصوصی برای gitlabonprem.com خواهد بود.

11. یک نمونه GCE ایجاد کنید

در داخل پوسته ابر ، نمونه GCE را برای اعتبارسنجی وضوح DNS ایجاد کنید.

gcloud compute instances create gce-dns-lookup \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=producer-psc-fr-subnet

با استفاده از IAP در Cloud Shell وارد Consumer-VM شوید تا بتوانید با انجام یک حلقه ، اتصال به سرویس تولید کننده را تأیید کنید. در صورت وجود زمان ، دوباره امتحان کنید.

gcloud compute ssh gce-dns-lookup --project=$projectid --zone=us-central1-a --tunnel-through-iap

از سیستم عامل پینگ تا gitlabonprem.com ، شکست پیش بینی می شود.

ping gitlabonprem.com

مثال:

user@gce-dns-lookup:~$ ping gitlabonprem.com
ping: gitlabonprem.com: Name or service not known

از سیستم عامل خارج شوید و شما را به ترمینال پوسته ابر برگردانید.

exit

12. یک منطقه DNS خصوصی ایجاد کنید

در داخل پوسته ابر ، منطقه خصوصی Cloud DNS را ایجاد کنید.

gcloud dns --project=$projectid managed-zones create gitlab-self-managed --description="" --dns-name="gitlabonprem.com." --visibility="private" --networks="https://compute.googleapis.com/compute/v1/projects/$projectid/global/networks/looker-psc-demo"

در داخل Cloud Shell ، یک رکورد متشکل از آدرس IP نمونه خود مدیریت Gitlab ، 192.168.10.4 ایجاد کنید.

gcloud dns --project=$projectid record-sets create gitlabonprem.com. --zone="gitlab-self-managed" --type="A" --ttl="300" --rrdatas="192.168.10.4"

با استفاده از IAP در Cloud Shell وارد Consumer-VM شوید تا بتوانید با انجام یک حلقه ، اتصال به سرویس تولید کننده را تأیید کنید. در صورت وجود زمان ، دوباره امتحان کنید.

gcloud compute ssh gce-dns-lookup --project=$projectid --zone=us-central1-a --tunnel-through-iap

از سیستم عامل پینگ به gitlabonprem.com را انجام دهید ، که تا 192.168.10.4 حل می شود.

ping gitlabonprem.com

مثال:

user@gce-dns-lookup:~$ ping gitlabonprem.com
PING gitlabonprem.com (192.168.10.4) 56(84) bytes of data

از سیستم عامل خارج شوید و شما را به ترمینال پوسته ابر برگردانید.

exit

13. اتصال ترکیبی

FQDN gitlabonprem.com اکنون می تواند با آدرس IP خصوصی که میزبان محل برگزاری آن هستند ، حل شود. در مرحله بعد ، شبکه هیبریدی (به عنوان مثال Interconnect ، HA-VPN) باید بین Looker-PSC-DEMO VPC و شبکه On-Premises پیکربندی شود تا اتصال را فعال کند.

در زیر مراحل لازم برای ایجاد اتصال NEG ترکیبی به فرضیه وجود دارد:

14. تست اتصال

در مراحل زیر ، از کنسول Looker برای ایجاد یک پروژه برای اعتبارسنجی اتصال HTTPS به GitLabonPrem.com با استفاده از روش بیان شده در تنظیم و آزمایش اتصال GIT استفاده خواهید کرد.

AE3B3884E8EF5DB8.PNG

15. تمیز کنید

از یک ترمینال پوسته ابری اجزای آزمایشگاه حذف

gcloud compute service-attachments delete gitlab-self-managed-svc-attachment-https --region=$region -q

gcloud compute forwarding-rules delete producer-gitlab-self-managed-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-endpoint-groups delete gitlab-self-managed-internet-neg --region=$region -q

gcloud compute instances delete gce-dns-lookup --zone=us-central1-a -q

gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-nat-subnet $region-proxy-only-subnet --region=$region -q

gcloud dns --project=$projectid record-sets delete gitlabonprem.com. --zone="gitlab-sel
f-managed" --type="A"

gcloud dns --project=$projectid managed-zones delete gitlab-self-managed 

gcloud compute networks delete looker-psc-demo -q

16. تبریک می گویم

تبریک می گویم ، شما با استفاده از کنسول Looker که توسط سرویس خصوصی اتصال به شما متصل شده است ، اتصال را با موفقیت به یک نمونه خود مدیریت GitLab پیکربندی و تأیید کرده اید.

شما زیرساخت های تولید کننده را ایجاد کرده اید ، یاد گرفتید که چگونه یک اینترنت NEG ، سرویس تولید کننده و نقطه پایانی Looker PSC ایجاد کنید که امکان اتصال به سرویس تولید کننده را فراهم می کند.

Cosmopup فکر می کند CodeLabs عالی است !!

c911c127bffdee57.jpeg

بعدش چی؟

برخی از این codelabs را بررسی کنید ...

خواندن و فیلم های بیشتر

اسناد مرجع