Looker PSC Southbound SSH Internet NEG,Looker PSC Southbound SSH Internet NEG,Looker PSC Southbound SSH Internet NEG

1. مقدمه

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

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

شکل 1.

145ea4672c3a3b14.png

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

شکل 2.

259493afd914f68b.png

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

  • الزامات شبکه
  • یک سرویس تولید کننده Private Service Connect ایجاد کنید
  • یک نقطه پایانی Private Service Connect در Looker ایجاد کنید
  • اتصال به GitHub را از Looker با استفاده از یک Test Connection برقرار کنید

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

def88091b42bfe4d.png

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

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

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

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

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

خدمات Backend

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

روتر ابری

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

Cloud NAT

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

4. توپولوژی Codelab

dfa4dd1d681a66da.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

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

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

در داخل Cloud Shell، Cloud Router را ایجاد کنید:

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 را راه اندازی کنید

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

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

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

در داخل Cloud Shell، اینترنت NEG github-internet-neg-ssh را با FQDN github.com و پورت 22 به روز کنید.

gcloud compute network-endpoint-groups update github-internet-neg-ssh \
    --add-endpoint="fqdn=github.com,port=22" \
    --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 به تمام نمونه های شبکه اجازه می دهد.

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

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

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

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

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

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-ssh --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-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=22

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

در داخل Cloud Shell، Service Attachment، github-svc-attachment-ssh را ایجاد کنید:

gcloud compute service-attachments create github-svc-attachment-ssh --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-ssh

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

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

نمونه خروجی مورد انتظار

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

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

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

30b1a280966b1f06.png

4eafe698193f5f44.png

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

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

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

  • INSTANCE_NAME: نام نمونه Looker شما (هسته Google Cloud).
  • DOMAIN_1: githubssh.com
  • SERVICE_ATTACHMENT_1: URI هنگام توصیف پیوست سرویس، github-svc-attachment-ssh گرفته می شود.
  • 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=githubssh.com,attachment=projects/$project/regions/$region/serviceAttachments/github-svc-attachment-ssh \
--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.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.14.18",
  "name": "projects/$project/locations/$region/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
      "projects/$project/global/networks/looker-psc-demo",
      "projects/$project/global/networks/looker-shared-vpc"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "githubssh.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/github-svc-attachment-ssh"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-08-31T20:53:04.824018122Z"
}

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

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

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

Looker → Looker Instance → Details

2d4684d722d31e4b.png

db670bb008ea3fc4.png

10. تست اتصال به GitHub

در مراحل زیر، از Looker Console برای ایجاد پروژه ای برای اعتبارسنجی اتصال SSH به GitHub.com با به روز رسانی دامنه github.com به githubssh.com در رابط کاربری Looker استفاده می کنید. این عمل فقط برای اتصالات SSH به GitHub لازم است.

11. یک پروژه جدید ایجاد کنید

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

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

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

70c9ded749decfbe.png

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

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

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

e8ae11e0392a776d.png

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

65a3c2573e97e1e9.png

نام پروژه را وارد کنید، پروژه خالی و سپس ایجاد پروژه را انتخاب کنید.

dbb890960291aa84.png

Configure Git را انتخاب کنید

42f5e51ce70642ad.png

Git را پیکربندی کنید

3962a1fe7ac8da77.png

هنگامی که Continue را انتخاب کردید، برای تأیید اعتبار URL Repository و سرویس میزبانی Git ارتقا خواهید یافت.

743e5d963cfe6f82.png

Deployment Key را به مخزن GitHub خود اضافه کنید. اطمینان حاصل کنید که اجازه دسترسی به نوشتن را می دهید. پس از به‌روزرسانی، Test and Finalize Setup را انتخاب کنید.

4894e0af6421802e.png

Git Actions را انتخاب کنید

e87931dbf7e265f3.png

Test Git Connection را انتخاب کنید

73d90adf267120af.png

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

f69bc63b9c595aa1.png

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

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

gcloud compute service-attachments delete github-svc-attachment-ssh --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 addresses delete internet-neg-lb-ip --region=$region -q

gcloud compute network-endpoint-groups delete github-internet-neg-ssh --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

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

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

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

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

c911c127bffdee57.jpeg

بعدش چی؟

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

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

اسناد مرجع

،

1. مقدمه

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

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

شکل 1.

145ea4672c3a3b14.png

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

شکل 2.

259493afd914f68b.png

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

  • الزامات شبکه
  • یک سرویس تولید کننده Private Service Connect ایجاد کنید
  • یک نقطه پایانی Private Service Connect در Looker ایجاد کنید
  • اتصال به GitHub را از Looker با استفاده از یک Test Connection برقرار کنید

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

def88091b42bfe4d.png

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

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

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

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

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

خدمات Backend

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

روتر ابری

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

Cloud NAT

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

4. توپولوژی Codelab

dfa4dd1d681a66da.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

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

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

در داخل Cloud Shell، Cloud Router را ایجاد کنید:

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 را راه اندازی کنید

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

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

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

در داخل Cloud Shell، اینترنت NEG github-internet-neg-ssh را با FQDN github.com و پورت 22 به روز کنید.

gcloud compute network-endpoint-groups update github-internet-neg-ssh \
    --add-endpoint="fqdn=github.com,port=22" \
    --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 به تمام نمونه های شبکه اجازه می دهد.

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

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

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

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

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

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-ssh --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-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=22

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

در داخل Cloud Shell، Service Attachment، github-svc-attachment-ssh را ایجاد کنید:

gcloud compute service-attachments create github-svc-attachment-ssh --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-ssh

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

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

نمونه خروجی مورد انتظار

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

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

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

30b1a280966b1f06.png

4eafe698193f5f44.png

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

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

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

  • INSTANCE_NAME: نام نمونه Looker شما (هسته Google Cloud).
  • DOMAIN_1: githubssh.com
  • SERVICE_ATTACHMENT_1: URI هنگام توصیف پیوست سرویس، github-svc-attachment-ssh گرفته می شود.
  • 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=githubssh.com,attachment=projects/$project/regions/$region/serviceAttachments/github-svc-attachment-ssh \
--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.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.14.18",
  "name": "projects/$project/locations/$region/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
      "projects/$project/global/networks/looker-psc-demo",
      "projects/$project/global/networks/looker-shared-vpc"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "githubssh.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/github-svc-attachment-ssh"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-08-31T20:53:04.824018122Z"
}

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

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

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

Looker → Looker Instance → Details

2d4684d722d31e4b.png

db670bb008ea3fc4.png

10. تست اتصال به GitHub

در مراحل زیر، از Looker Console برای ایجاد پروژه ای برای اعتبارسنجی اتصال SSH به GitHub.com با به روز رسانی دامنه github.com به githubssh.com در رابط کاربری Looker استفاده می کنید. این عمل فقط برای اتصالات SSH به GitHub لازم است.

11. یک پروژه جدید ایجاد کنید

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

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

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

70c9ded749decfbe.png

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

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

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

e8ae11e0392a776d.png

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

65a3c2573e97e1e9.png

نام پروژه را وارد کنید، پروژه خالی و سپس ایجاد پروژه را انتخاب کنید.

dbb890960291aa84.png

Configure Git را انتخاب کنید

42f5e51ce70642ad.png

Git را پیکربندی کنید

3962a1fe7ac8da77.png

هنگامی که Continue را انتخاب کردید، برای تأیید اعتبار URL Repository و سرویس میزبانی Git ارتقا خواهید یافت.

743e5d963cfe6f82.png

Deployment Key را به مخزن GitHub خود اضافه کنید. اطمینان حاصل کنید که اجازه دسترسی به نوشتن را می دهید. پس از به‌روزرسانی، Test and Finalize Setup را انتخاب کنید.

4894e0af6421802e.png

Git Actions را انتخاب کنید

e87931dbf7e265f3.png

Test Git Connection را انتخاب کنید

73d90adf267120af.png

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

f69bc63b9c595aa1.png

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

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

gcloud compute service-attachments delete github-svc-attachment-ssh --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 addresses delete internet-neg-lb-ip --region=$region -q

gcloud compute network-endpoint-groups delete github-internet-neg-ssh --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

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

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

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

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

c911c127bffdee57.jpeg

بعدش چی؟

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

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

اسناد مرجع

،

1. مقدمه

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

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

شکل 1.

145ea4672c3a3b14.png

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

شکل 2.

259493afd914f68b.png

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

  • الزامات شبکه
  • یک سرویس تولید کننده Private Service Connect ایجاد کنید
  • یک نقطه پایانی Private Service Connect در Looker ایجاد کنید
  • اتصال به GitHub را از Looker با استفاده از یک Test Connection برقرار کنید

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

def88091b42bfe4d.png

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

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

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

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

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

خدمات Backend

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

روتر ابری

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

Cloud NAT

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

4. توپولوژی Codelab

dfa4dd1d681a66da.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

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

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

در داخل Cloud Shell، Cloud Router را ایجاد کنید:

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 را راه اندازی کنید

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

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

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

در داخل Cloud Shell، اینترنت NEG github-internet-neg-ssh را با FQDN github.com و پورت 22 به روز کنید.

gcloud compute network-endpoint-groups update github-internet-neg-ssh \
    --add-endpoint="fqdn=github.com,port=22" \
    --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 به تمام نمونه های شبکه اجازه می دهد.

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

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

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

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

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

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-ssh --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-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=22

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

در داخل Cloud Shell، Service Attachment، github-svc-attachment-ssh را ایجاد کنید:

gcloud compute service-attachments create github-svc-attachment-ssh --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-ssh

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

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

نمونه خروجی مورد انتظار

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

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

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

30b1a280966b1f06.png

4eafe698193f5f44.png

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

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

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

  • INSTANCE_NAME: نام نمونه Looker شما (هسته Google Cloud).
  • DOMAIN_1: githubssh.com
  • SERVICE_ATTACHMENT_1: URI هنگام توصیف پیوست سرویس، github-svc-attachment-ssh گرفته می شود.
  • 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=githubssh.com,attachment=projects/$project/regions/$region/serviceAttachments/github-svc-attachment-ssh \
--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.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.14.18",
  "name": "projects/$project/locations/$region/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
      "projects/$project/global/networks/looker-psc-demo",
      "projects/$project/global/networks/looker-shared-vpc"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "githubssh.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/github-svc-attachment-ssh"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-08-31T20:53:04.824018122Z"
}

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

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

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

Looker → Looker Instance → Details

2d4684d722d31e4b.png

db670bb008ea3fc4.png

10. تست اتصال به GitHub

در مراحل زیر، از Looker Console برای ایجاد پروژه ای برای اعتبارسنجی اتصال SSH به GitHub.com با به روز رسانی دامنه github.com به githubssh.com در رابط کاربری Looker استفاده می کنید. این عمل فقط برای اتصالات SSH به GitHub لازم است.

11. یک پروژه جدید ایجاد کنید

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

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

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

70c9ded749decfbe.png

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

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

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

e8ae11e0392a776d.png

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

65a3c2573e97e1e9.png

نام پروژه را وارد کنید، پروژه خالی و سپس ایجاد پروژه را انتخاب کنید.

dbb890960291aa84.png

Configure Git را انتخاب کنید

42f5e51ce70642ad.png

Git را پیکربندی کنید

3962a1fe7ac8da77.png

هنگامی که Continue را انتخاب کردید، برای تأیید اعتبار URL Repository و سرویس میزبانی Git ارتقا خواهید یافت.

743e5d963cfe6f82.png

Deployment Key را به مخزن GitHub خود اضافه کنید. اطمینان حاصل کنید که اجازه دسترسی به نوشتن را می دهید. پس از به‌روزرسانی، Test and Finalize Setup را انتخاب کنید.

4894e0af6421802e.png

Git Actions را انتخاب کنید

e87931dbf7e265f3.png

Test Git Connection را انتخاب کنید

73d90adf267120af.png

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

f69bc63b9c595aa1.png

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

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

gcloud compute service-attachments delete github-svc-attachment-ssh --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 addresses delete internet-neg-lb-ip --region=$region -q

gcloud compute network-endpoint-groups delete github-internet-neg-ssh --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

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

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

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

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

c911c127bffdee57.jpeg

بعدش چی؟

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

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

اسناد مرجع