Looker PSC Southbound HTTPS Internet NEG,Looker PSC Southbound HTTPS Internet NEG,Looker PSC Southbound HTTPS Internet NEG,Looker PSC Southbound HTTPS Internet NEG

۱. مقدمه

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

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

شکل ۱.

۱۴۵ea4672c3a3b14.png

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

شکل ۲.

259493afd914f68b.png

آنچه یاد خواهید گرفت

  • الزامات شبکه
  • ایجاد یک سرویس تولیدکننده Private Service Connect
  • ایجاد یک نقطه پایانی اتصال سرویس خصوصی در Looker
  • با استفاده از یک اتصال آزمایشی، اتصال به گیت‌هاب را از Looker برقرار کنید

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

def88091b42bfe4d.png

۲. آنچه خواهید ساخت

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

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

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

در زیر جزئیات الزامات شبکه برای شبکه تولیدکننده آمده است، مصرف‌کننده در این آزمایشگاه کد، نمونه Looker PSC است.

قطعات

توضیحات

VPC (مشاهده‌گر-psc-دمو)

حالت سفارشی VPC

زیرشبکه PSC NAT

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

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

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

زیرشبکه PSC NEG

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

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

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

اینترنت منفی

منبعی که برای تعریف یک backend خارجی برای load balancer استفاده می‌شود. نقطه پایانی نمی‌تواند فقط از طریق Cloud VPN یا Cloud Interconnect قابل دسترسی باشد.

خدمات بک‌اند

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

روتر ابری

Cloud NAT برای قابلیت‌های صفحه کنترل به روترهای ابری متکی است، اما برای مدیریت جلسه BGP به آن متکی نیست.

NAT ابری

اینترنت منطقه‌ای NEG از Cloud NAT برای خروجی اینترنت استفاده می‌کند.

۴. توپولوژی Codelab

4e7ac0fd4a61ed9b.png

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

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

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

شروع پوسته ابری

اگرچه می‌توان از راه دور و از طریق لپ‌تاپ، گوگل کلود را مدیریت کرد، اما در این آزمایشگاه کد، از گوگل کلود شل ، یک محیط خط فرمان که در فضای ابری اجرا می‌شود، استفاده خواهید کرد.

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

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

این ماشین مجازی با تمام ابزارهای توسعه‌ای که نیاز دارید، مجهز شده است. این ماشین مجازی یک دایرکتوری خانگی پایدار ۵ گیگابایتی ارائه می‌دهد و روی فضای ابری گوگل اجرا می‌شود که عملکرد شبکه و احراز هویت را تا حد زیادی بهبود می‌بخشد. تمام کارهای شما در این آزمایشگاه کد را می‌توان در یک مرورگر انجام داد. نیازی به نصب چیزی ندارید.

۶. قبل از شروع

فعال کردن 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

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

شبکه 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

ایجاد دروازه عمومی NAT

دروازه NAT توسط متعادل‌کننده بار پروکسی tcp داخلی منطقه‌ای برای خروجی اینترنت با گزینه پیکربندی –endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB استفاده می‌شود، بنابراین همان NATGW از خروجی اینترنت GCE/GKE پشتیبانی نمی‌کند. یک NAT GW اضافی با –endpoint-types=ENDPOINT_TYPE_VM برای خروجی اینترنت GCE/GKE مستقر کنید.

درون Cloud Shell، روتر ابری را ایجاد کنید:

gcloud compute routers create looker-psc-demo-cloud-router --network looker-psc-demo --region $region

درون Cloud Shell، دروازه Cloud NAT را ایجاد کنید که امکان خروج اینترنت را برای متعادل‌کننده بار پروکسی tcp فراهم می‌کند:

gcloud compute routers nats create looker-psc-demo-natgw \
  --router=looker-psc-demo-cloud-router \
  --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
  --nat-custom-subnet-ip-ranges=$region-proxy-only-subnet \
  --auto-allocate-nat-external-ips \
  --region=$region

آدرس 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 را تنظیم کنید

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

درون Cloud Shell، یک Internet NEG ایجاد کنید که برای github.com استفاده می‌شود.

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

درون Cloud Shell، فایل Internet NEG از github-internet-neg را با FQDN github.com و پورت ۴۴۳ به‌روزرسانی کنید.

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

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

درون 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 Subnet به تمام نمونه‌های شبکه ارسال شود.

درون 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

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

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

درون 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=github-internet-neg --network-endpoint-group-region=$region --region=$region

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

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-github-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، ضمیمه سرویس، github-svc-attachment-https را ایجاد کنید:

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

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

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

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

gcloud compute service-attachments describe github-svc-attachment-https --region=$region

مثال:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-08-30T09:44:03.883-07:00'
description: ''
enableProxyProtocol: false
fingerprint: RfKh3blWZE0=
id: '2897904404386302012'
kind: compute#serviceAttachment
name: github-svc-attachment-https
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '19348441121424360'
  low: '2897904404386302012'
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/github-svc-attachment-https
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-github-fr

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

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

a8cae886441d9c25.png

84a906b3bedabeeee.png

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

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

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

  • INSTANCE_NAME: نام نمونه Looker (هسته Google Cloud) شما.
  • دامنه_۱: github.com
  • SERVICE_ATTACHMENT_1: آدرس اینترنتی (URI) هنگام توصیف پیوست سرویس، github-svc-attachment-https، ثبت شده است.
  • منطقه: منطقه‌ای که نمونه Looker (هسته گوگل کلود) شما در آن میزبانی می‌شود.

درون 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=github.com,attachment=projects/$project/regions/$region/serviceAttachments/github-svc-attachment-https \
--region=$region

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

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.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",
      "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": "github.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/github-svc-attachment-https"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-08-30T17:47:33.440271635Z"
}

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

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

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

مشاهده‌گر → نمونه مشاهده‌گر → جزئیات

2d4684d722d31e4b.png

ef907280833bcad.png

۱۰. اتصال به گیت‌هاب را آزمایش کنید

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

۱۱. ایجاد یک پروژه جدید

فعال کردن حالت توسعه

در کنسول Looker، به مسیر زیر بروید:

حالت توسعه را فعال کنید (پایین صفحه سمت چپ)، پس از انتخاب، بنر «شما در حالت توسعه هستید» نمایش داده می‌شود.

70c9ded749decfbe.png

ایجاد یک پروژه جدید

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

توسعه → پروژه‌ها

e8ae11e0392a776d.png

پروژه جدید LookML را انتخاب کنید

65a3c2573e97e1e9.png

یک نام برای پروژه وارد کنید، گزینه Blank Project و سپس Create Project را انتخاب کنید.

۹۱۸۵۸۰۸e۰۰۱fa۵۴۰.png

پیکربندی گیت را انتخاب کنید

42f5e51ce70642ad.png

پیکربندی گیت

آدرس مخزن (Repository URL) را با جزئیات HTTPS github خود به‌روزرسانی کنید، مطمئن شوید که آدرس را با .git اضافه می‌کنید و سپس ادامه (Continue) را انتخاب کنید.

f5c448f6659b8f1.png

مثال:

4065ab1d196589f.png

انتخاب را با نام کاربری GitHub و توکن دسترسی شخصی (کلاسیک) خود به‌روزرسانی کنید، سپس Test and Finalize Setup را انتخاب کنید.

1dc44d63c555a9ae.png

انتخاب اقدامات گیت

b5903668a50a99ca.png

اتصال Git را امتحان کنید.

51b722e84f2df38c.png

اعتبارسنجی تست اتصال Git

a33584380b788b6d.png

تمیز کردن

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

gcloud compute service-attachments delete github-svc-attachment-https --region=$region -q

gcloud compute forwarding-rules delete producer-github-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 looker-psc-demo-natgw --router=looker-psc-demo-cloud-router --router-region=$region -q

gcloud compute routers delete looker-psc-demo-cloud-router --region=$region -q

gcloud compute network-endpoint-groups delete github-internet-neg --region=$region -q

gcloud compute addresses delete internet-neg-lb-ip --region=$region -q

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

gcloud compute networks delete looker-psc-demo -q

۱۲. تبریک

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

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

کازموپاپ فکر می‌کند که کدلب‌ها فوق‌العاده هستند!!

c911c127bffdee57.jpeg

بعدش چی؟

به برخی از این آزمایشگاه‌های کد نگاهی بیندازید...

مطالعه بیشتر و ویدیوها

اسناد مرجع