1. مقدمه
در این کد لبه شما یک L7 Load Balancer داخلی Application Load Balancer و Private Service Connect Backend ایجاد می کنید تا دسترسی شمال به Looker را به دست آورید. دسترسی Northbound به Looker نیاز به Consumer VPC مجاز در لیست نمونه Looker PSC دارد.
Private Service Connect یکی از قابلیتهای شبکه Google Cloud است که به مصرفکنندگان اجازه میدهد بهطور خصوصی از داخل شبکه VPC خود به خدمات مدیریت شده دسترسی داشته باشند. به طور مشابه، به تولیدکنندگان خدمات مدیریت شده اجازه می دهد تا این خدمات را در شبکه های VPC جداگانه خود میزبانی کنند و یک اتصال خصوصی به مصرف کنندگان خود ارائه دهند. به عنوان مثال، هنگامی که از Private Service Connect برای دسترسی به Looker استفاده می کنید، شما مصرف کننده سرویس هستید و Google تولید کننده سرویس است، همانطور که در شکل 1 مشخص شده است.
شکل 1.
دسترسی Southbound که به عنوان PSC معکوس نیز شناخته میشود، مصرفکننده را قادر میسازد تا یک سرویس منتشر شده بهعنوان تولیدکننده ایجاد کند تا به Looker اجازه دسترسی به نقاط پایانی در محل، در VPC، به خدمات مدیریت شده و اینترنت را بدهد. همانطور که در شکل 2 مشخص شده است، بدون توجه به جایی که Looker PSC در کجا مستقر شده است، اتصالات به جنوب می توانند در هر منطقه مستقر شوند.
شکل 2.
چیزی که یاد خواهید گرفت
- الزامات شبکه
- لیست مجاز Looker را برای دسترسی به شمال به روز کنید
- یک باطن Private Service Connect در Consumer VPC ایجاد کنید
- گواهیهای Google در مقابل Self Signed
آنچه شما نیاز دارید
- پروژه Google Cloud با مجوزهای مالک
- دامنه ثبت شده
- نمونه PSC Looker موجود
2. آنچه می سازید
شما یک شبکه مجاز مصرف کننده، looker-psc-demo، برای استقرار یک متعادل کننده بار برنامه داخلی منطقه ای L7 و NEG پشتیبان PSC که به گواهی Google یا خود مدیریت نیاز دارد، ایجاد می کنید، برای جزئیات بیشتر ، صفحه خلاصه کننده بار و صفحه خلاصه گواهی را مشاهده کنید.
3. الزامات شبکه
در زیر تجزیه و تحلیل نیازمندی های شبکه آورده شده است:
اجزاء | توضیحات |
VPC (looker-psc-demo) | حالت سفارشی VPC |
زیرشبکه PSC NEG | برای تخصیص یک آدرس IP برای گروه نقطه پایانی شبکه استفاده می شود |
زیر شبکه فقط پروکسی | به هر یک از پراکسی های load balancer یک آدرس IP داخلی اختصاص داده شده است. بسته های ارسال شده از یک پروکسی به یک ماشین مجازی پشتیبان یا نقطه پایانی دارای یک آدرس IP منبع از زیر شبکه فقط پراکسی هستند. |
خدمات Backend | یک سرویس پشتیبان به عنوان پلی بین متعادل کننده بار و منابع باطن شما عمل می کند. در آموزش، سرویس Backend با PSC NEG مرتبط است. |
4. توپولوژی Codelab
5. راه اندازی و الزامات
تنظیم محیط خود به خود
- به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .
- نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
- شناسه پروژه در تمام پروژههای Google Cloud منحصربهفرد است و تغییرناپذیر است (پس از تنظیم نمیتوان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام
PROJECT_ID
شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، میتوانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند. - برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
- در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورتحساب فراتر از این آموزش، میتوانید منابعی را که ایجاد کردهاید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
Cloud Shell را راه اندازی کنید
در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.
از Google Cloud Console ، روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:
تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:
این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این کد لبه را می توان در یک مرورگر انجام داد. شما نیازی به نصب چیزی ندارید.
6. قبل از شروع
API ها را فعال کنید
در داخل Cloud Shell، مطمئن شوید که شناسه پروژه شما تنظیم شده است:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region
فعال کردن تمام خدمات لازم:
gcloud services enable compute.googleapis.com
7. شبکه مصرف کننده
در بخش بعدی، شبکه مصرف کننده را ایجاد می کنید که در لیست مجاز Looker PSC VPC به روز می شود.
شبکه VPC
در داخل Cloud Shell موارد زیر را انجام دهید:
gcloud compute networks create looker-psc-demo --subnet-mode custom
ایجاد زیرشبکه
در داخل Cloud Shell، زیرشبکه گروه نقطه پایانی شبکه مصرف کننده را ایجاد کنید:
gcloud compute networks subnets create consumer-psc-neg-subnet --network looker-psc-demo --range 172.16.30.0/28 --region $region --enable-private-ip-google-access
در داخل Cloud Shell، زیرشبکه متعادل کننده بار برنامه داخلی را ایجاد کنید:
gcloud compute networks subnets create consumer-ilb-subnet --network looker-psc-demo --range 172.16.40.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
8. یک دامنه سفارشی ایجاد کنید
مراحل زیر برای ایجاد یک دامنه سفارشی مورد نیاز است:
در مثال زیر، looker.cosmopup.com دامنه سفارشی است
نمونه OAuth
در زیر نمونهای از اعتبارنامههای OAuth برای مبداهای مجاز و پاسخ تماس برای زیر دامنه looker.cosmopup.com آمده است.
9. گواهینامه ها
میتوانید گواهیهای Compute Engine یا Certificate Manager را ایجاد کنید. برای ایجاد گواهی با استفاده از Certificate Manager از یکی از روش های زیر استفاده کنید:
- گواهینامه های خود مدیریت منطقه ای برای اطلاعات در مورد ایجاد و استفاده از گواهینامههای خود مدیریت منطقهای، به استقرار گواهینامه خود مدیریت منطقهای مراجعه کنید. نقشه های گواهی پشتیبانی نمی شوند.
- گواهینامه های منطقه ای تحت مدیریت Google. نقشه های گواهی پشتیبانی نمی شوند. انواع زیر از گواهیهای منطقهای تحت مدیریت Google توسط مدیر گواهی پشتیبانی میشوند:
- گواهینامه های منطقه ای تحت مدیریت Google با مجوز DNS برای هر پروژه. برای اطلاعات بیشتر، به استقرار یک گواهینامه منطقه ای تحت مدیریت Google مراجعه کنید.
- گواهینامه های منطقه ای (خصوصی) تحت مدیریت Google با خدمات مرجع صدور گواهی. برای اطلاعات بیشتر، به استقرار گواهی مدیریت شده توسط Google با سرویس CA مراجعه کنید.
10. Looker VPC allowlisting
VPC های مجاز را مشاهده کنید
در بخش زیر، از رابط کاربری Cloud Console برای مشاهده لیست VPC های مجاز Looker استفاده می کنید.
در Cloud Console به مسیر زیر بروید:
Looker → Looker Instance → Details
به عنوان مثال در زیر، هیچ ورودی در لیست VPC های مجاز وجود ندارد:
VPC های مجاز را به روز کنید
با افزودن looker-psc-demo به عنوان یک VPC مجاز، نمونه Looker خود را برای پشتیبانی از دسترسی به شمال به روز کنید.
در Cloud Console به مسیر زیر بروید:
Looker → Looker Instance → Edit
اتصالات → VPC های مجاز
اطمینان حاصل کنید که پروژه ای را انتخاب کنید که در آن Looker-psc-Demo مستقر است و سپس VPC looker-psc-demo و سپس Continue.
اعتبار سنجی VPC های مجاز
لیست VPC های مجاز به روز رسانی را مشاهده کنید
در Cloud Console به مسیر زیر بروید:
Looker → Looker Instance → Details
11. PSC Backend را ایجاد کنید
Looker PSC بهعنوان یک تولیدکننده خدمات، یک URI پیوست سرویس ایجاد میکند که توسط مصرفکنندگان خدمات برای استقرار نقاط پایانی و باطنها برای دستیابی به دسترسی شمال به Looker استفاده میشود. در مرحله زیر، URI پیوست سرویس Looker PSC را شناسایی میکنید و سپس یک گروه نقطه پایانی شبکه اتصال خصوصی سرویس (NEG) در Consumer VPC ایجاد میکنید.
پیوست سرویس Looker PSC را شناسایی کنید
در Cloud Console، URI پیوست سرویس را پیمایش و کپی کنید:
Looker → Looker Instance → Details
گروه نقطه پایانی شبکه PSC را ایجاد کنید
در داخل Cloud Shell، برای اطمینان از به روز رسانی psc-target-service، موارد زیر را انجام دهید:
gcloud compute network-endpoint-groups create looker-northbound-neg \
--network-endpoint-type=private-service-connect \
--psc-target-service=[UPDATE WITH YOU LOOKER SERVICE ATTACHMENT URI] \
--region=$region \
--network=looker-psc-demo \
--subnet=consumer-psc-neg-subnet
مثال:
gcloud compute network-endpoint-groups create looker-northbound-neg \
--network-endpoint-type=private-service-connect \
--psc-target-service=projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183 \
--region=$region \
--network=looker-psc-demo \
--subnet=consumer-psc-neg-subnet
ایجاد گروه پایانی شبکه PSC را تأیید اعتبار کنید
در داخل Cloud Shell، موارد زیر را انجام دهید تا pscConnectionStatus پذیرفته شود:
gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus:
مثال:
user@cloudshell$ gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus:
pscConnectionStatus: ACCEPTED
یک متعادل کننده بار داخلی برنامه داخلی منطقه ای ایجاد کنید
در مراحل زیر، از Cloud Console برای ایجاد متعادلکننده بار داخلی برنامه داخلی منطقهای استفاده میکنید و در عین حال گواهیهای تولید شده خود را به پیکربندی front end مرتبط میکنید.
در Cloud Console به مسیر زیر بروید:
خدمات شبکه → تعادل بار → ایجاد تعادل بار
گزینه های زیر را انتخاب کنید:
پیکربندی Backend را ایجاد کنید
گزینه های زیر را انتخاب کنید و محیط را بر اساس استقرار خود سفارشی کنید:
- منطقه مورد استفاده در استقرار زیرساخت شبکه
- شبکه: looker-psc-demo
- زیرشبکه Proxy-Only به صورت خودکار بر اساس منطقه و شبکه شما پر می شود
قوانین مسیریابی
بدون نیاز به پیکربندی
پیکربندی Frontend
اطمینان حاصل کنید که متعادل کننده بار فعال است و آدرس IP را دریافت کنید.
در Cloud Console → خدمات شبکه → Load Balancing → looker-ilb-alb
12. وضوح DNS
رزولوشن DNS برای دامنه سفارشی می تواند معتبر on-premesis یا Cloud DNS باشد. در این آموزش ما Cloud DNS را به عنوان سرور معتبر برای Looker Custom Domain تعریف می کنیم. فعال کردن وضوح on-premesis به GCP DNS نیازمند فعال کردن خطمشیهای سرور ورودی است. هنگامی که یک خط مشی سرور ورودی ایجاد می کنید، Cloud DNS نقاط ورودی خط مشی سرور ورودی را در شبکه VPC ایجاد می کند که خط مشی سرور برای آن اعمال می شود. نقاط ورود خط مشی سرور ورودی، آدرسهای IPv4 داخلی هستند که از محدوده آدرس IPv4 اولیه هر زیرشبکه در شبکه VPC قابلاجرا، بهجز زیرشبکههای فقط پراکسی، منبع میشوند.
در بخش زیر، یک منطقه DNS خصوصی برای Looker Custom Domain، looker.cosmopup.com و یک رکورد متشکل از آدرس IP متعادل کننده بار ایجاد می شود.
13. یک منطقه DNS خصوصی ایجاد کنید
در داخل Cloud Shell، Cloud DNS Private Zone را ایجاد کنید.
gcloud dns --project=$projectid managed-zones create looker-cosmopup-dns --description="" --dns-name="looker.cosmopup.com." --visibility="private" --networks="https://compute.googleapis.com/compute/v1/projects/$projectid/global/networks/looker-psc-demo"
در داخل Cloud Shell، رکورد A را ایجاد کنید که شامل آدرس IP متعادل کننده بار است که در مرحله قبل به دست آمد.
gcloud dns --project=$projectid record-sets create looker.cosmopup.com. --zone="looker-cosmopup-dns" --type="A" --ttl="300" --rrdatas="<insert-your-ip>"
مثال:
gcloud dns --project=$projectid record-sets create looker.cosmopup.com. --zone="looker-cosmopup-dns" --type="A" --ttl="300" --rrdatas="172.16.20.7"
در مرحله بعد، شبکه های ترکیبی (به عنوان مثال Interconnect، HA-VPN) باید بین Looker-psc-Demo VPC و شبکه درون محل پیکربندی شود تا اتصال فعال شود.
در زیر مراحل مورد نیاز برای ایجاد اتصال Hybrid NEG به on-premesis آمده است:
- انتخاب محصول اتصال شبکه | Google Cloud
- در یک معماری هاب و اسپیک با همتاسازی VPC، NEG هیبریدی در همان VPC به عنوان روتر ابری (هاب) مستقر میشود.
- اطمینان حاصل کنید که فایروالهای داخلی بهروزرسانی میشوند تا محدوده زیرشبکه فقط پراکسی را در خود جای دهند، زیرا این زیرشبکه به عنوان آدرس IP منبع برای ارتباط با بارهای کاری درون محل عمل میکند.
- DNS داخلی را با آدرس IP ارسال ورودی به عنوان حلکننده DNS برای looker.cosomopup.com بهروزرسانی کنید.
دسترسی به رابط کاربری Looker
اکنون که load balancer عملیاتی شده است، می توانید از طریق یک مرورگر وب به دامنه Looker سفارشی خود دسترسی داشته باشید. مهم است که توجه داشته باشید که بسته به نوع گواهی که استفاده می کنید، ممکن است با یک هشدار مواجه شوید، به عنوان مثال گواهی نامعتبر در مقابل معتبر.
در زیر نمونه ای (گواهی نامعتبر) از دسترسی به دامنه سفارشی Looker looker.cosmopup.com است که دسترسی شمال به رابط کاربری Looker را می یابد:
14. پاکسازی کنید
از یک ترمینال Cloud Shell، اجزای آزمایشگاه را حذف کنید:
gcloud compute forwarding-rules delete regional-internal-alb-fr --region=$region -q
gcloud compute target-https-proxies delete regional-internal-alb-target-proxy --region=$region -q
gcloud compute url-maps delete regional-internal-alb --region=$region -q
gcloud compute backend-services delete looker-psc-neg-backend-svc --region=$region -q
gcloud compute addresses delete regional-alb-static-ip --region=$region -q
gcloud compute network-endpoint-groups delete looker-northbound-neg --region=$region -q
gcloud compute networks delete looker-psc-demo -q
15. تبریک می گویم
تبریک میگوییم، شما با استفاده از دامنه مشتری و متعادلکننده بار برنامه داخلی منطقهای، اتصال شمال به Looker را با موفقیت پیکربندی و تأیید کردید.
زیرساخت مصرف کننده را ساختید، یاد گرفتید که چگونه یک PSC NEG، دامنه سفارشی ایجاد کنید و با گزینه های مختلف گواهی آشنا شدید. چیزهای بسیار هیجان انگیزی که شما را با Looker همراه می کند.
Cosmopup فکر می کند که نرم افزارهای کدنویسی عالی هستند!!
بعدش چی؟
برخی از این کدها را بررسی کنید...
- استفاده از Private Service Connect برای انتشار و مصرف خدمات
- با استفاده از Private Service Connect و یک متعادل کننده بار داخلی TCP Proxy از طریق شبکه هیبریدی به سرویس های اولیه متصل شوید.
- دسترسی به تمام کدهای منتشر شده Private Service Connect
ادامه مطلب و ویدیوها
اسناد مرجع
- استفاده از گواهینامه های SSL خود مدیریت | تعادل بار | Google Cloud
- یک گواهینامه منطقه ای تحت مدیریت Google مستقر کنید
- ایجاد یک باطن Private Service Connect | VPC | Google Cloud
- ایجاد یک باطن Private Service Connect | VPC | Google Cloud
- یک نمونه Looker (هسته Google Cloud) Private Service Connect ایجاد کنید
- نحوه انتشار یک سرویس با استفاده از Private Service Connect