גישה לשירותים שפורסמו דרך שרתי קצה עורפיים
במדריך הזה מוסבר איך להגדיר מאזן עומסים גלובלי חיצוני של אפליקציות (ALB) עם קצה עורפי מסוג Private Service Connect כדי לגשת לשירות שפורסם באמצעות Private Service Connect.
מידע נוסף זמין במאמר מידע על קצה עורפי של Private Service Connect.
תפקידים
התפקיד 'אדמין של מאזן עומסים של Compute' (roles/compute.loadBalancerAdmin) כולל את ההרשאה שנדרשת לביצוע המשימות שמתוארות במדריך הזה.
לפני שמתחילים
אם אתם רוצים לפרסם שירות משלכם, תוכלו לעיין במאמר בנושא פרסום שירותים באמצעות Private Service Connect.
אם אתם מחברים שירות שפורסם על ידי צד שלישי, אתם צריכים לבקש מהבעלים של שירות מנוהל את הפרטים הבאים:
ה-URI של קובץ השירות בשביל השירות שאליו רוצים להתחבר. הפורמט של קובץ השירות הוא:
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAMEדרישות לגבי שמות ה-DNS שמשמשים לשליחת בקשות. יכול להיות שתצטרכו להשתמש בשמות DNS ספציפיים בהגדרות של מפת URL או בהגדרות של DNS.
יצירת קבוצת נקודות קצה ברשת
יוצרים NEG של Private Service Connect שמפנה לקובץ המצורף של השירות שפורסם ורוצים לגשת אליו. אם השירות שפורסם נפרס בכמה אזורים שונים, צריך ליצור NEG אחד לכל צירוף שירות.
כל NEG מסוג Private Service Connect צורך כתובת IP אחת (/32) כדי שמאזן העומסים יוכל לתקשר איתו.
המסוף
נכנסים לדף Network endpoint groups במסוף Google Cloud .
לוחצים על יצירת קבוצת נקודות קצה ברשת.
מזינים שם לקבוצת נקודות הקצה ברשת.
בקטע סוג קבוצת נקודות קצה ברשת, בוחרים באפשרות קבוצה של נקודות קצה ברשת (Private Service Connect).
בוחרים את סוג היעד שירות שפורסם.
בשדה שירות יעד, מזינים את מזהה המשאבים האחיד (URI) של שירות ה-Attachment.
בוחרים את הרשת ורשת המשנה שבהן רוצים ליצור את קבוצת נקודות הקצה ברשת.
רשת המשנה צריכה להיות באותו אזור שבו השירות שפורסם נמצא.
לוחצים על יצירה.
gcloud
gcloud compute network-endpoint-groups create NEG_NAME \
--network-endpoint-type=private-service-connect \
--psc-target-service=TARGET_SERVICE \
--region=REGION \
--network=NETWORK \
--subnet=SUBNET
מחליפים את מה שכתוב בשדות הבאים:
NEG_NAME: שם לקבוצת נקודות הקצה ברשת.
TARGET_SERVICE: קובץ השירות שאליו רוצים להתחבר.
REGION: האזור שבו רוצים ליצור את קבוצת נקודות הקצה ברשת. האזור חייב להיות זהה לאזור של שירות היעד.
NETWORK: הרשת שבה רוצים ליצור את קבוצת נקודות הקצה ברשת. אם לא מציינים רשת, המערכת משתמשת ברשת ברירת המחדל.
SUBNET: תת-הרשת שבה רוצים ליצור את קבוצת נקודות הקצה ברשת. רשת המשנה צריכה להיות באותו אזור כמו שירות היעד. אם מספקים את הרשת, צריך לספק גם רשת משנה. אם לא מציינים רשת וגם לא רשת משנה, המערכת משתמשת ברשת ברירת המחדל וברשת המשנה שמוגדרת כברירת המחדל ב-REGIONשצוין.
שמירת כתובת IP חיצונית למאזן העומסים
כדי לשמור כתובת IP חיצונית למאזן העומסים, צריך לבצע את השלבים הבאים.
המסוף
נכנסים לדף IP addresses במסוף Google Cloud .
כדי לשמור כתובת IPv4 סטטית, לוחצים על שמירת כתובת סטטית.
מקצים שם למשאב של כתובת ה-IP.
מגדירים את מסלול הרשת ל-Premium.
מגדירים את IP version ל-IPv4.
מגדירים את Type (סוג) בתור Global (גלובלי).
לוחצים על Reserve.
gcloud
שומרים כתובת IPv4 חיצונית גלובלית למאזן העומסים.
gcloud compute addresses create ADDRESS_NAME \ --ip-version=IPV4 --globalמחליפים את
ADDRESS_NAMEבשם של משאב כתובת ה-IP.מריצים את הפקודה הבאה כדי לראות את כתובת ה-IP השמורה:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --global
יצירת משאב של אישור SSL
כדי ליצור מאזן עומסים מסוג HTTPS, צריך להוסיף משאב של אישור SSL לממשק הקצה של מאזן העומסים. יוצרים משאב של אישור SSL באמצעות אישור SSL בניהול Google או אישור SSL בניהול עצמי.
אישורים שמנוהלים על ידי Google. מומלץ להשתמש באישורים שמנוהלים על ידי Google כי Google Cloud מקבלת, מנהלת ומחדשת את האישורים האלה באופן אוטומטי. כדי ליצור אישור שמנוהל על ידי Google, צריך שיהיה לכם דומיין ורשומות ה-DNS של הדומיין הזה כדי להקצות את האישור. בנוסף, צריך לעדכן את רשומת ה-A של ה-DNS של הדומיין כך שתצביע על כתובת ה-IP של מאזן העומסים שנוצרה בשלב הקודם. הוראות מפורטות זמינות במאמר בנושא שימוש באישורים שמנוהלים על ידי Google.
אישורים בניהול עצמי. אישורי SSL בניהול עצמי הם אישורים שאתם מקבלים, מקצים ומחדשים בעצמכם. אישורים בניהול עצמי יכולים להיחתם על ידי רשות אישורים או להיחתם באופן עצמאי. אם הם חתומים על ידי רשות אישורים, אתם צריכים דומיין. בנוסף, צריך לעדכן את רשומת ה-DNS A של הדומיין כך שתפנה לכתובת ה-IP של מאזן העומסים שנוצר בשלב הקודם. הוראות מפורטות זמינות במאמר בנושא שימוש באישור SSL בניהול עצמי.
אם אתם לא רוצים להגדיר דומיין בשלב הזה, אתם יכולים להשתמש באישור SSL בחתימה עצמית לצורך בדיקה.
ההוראות האלה מניחות שכבר יצרתם משאב של אישור SSL.
הגדרת מאזן העומסים
הגדרת מאזן עומסים גלובלי חיצוני של אפליקציות עם יכולות מתקדמות של ניהול תנועה (סכמת איזון העומסים מוגדרת ל-EXTERNAL_MANAGED) כדי להתחבר לשירות מנוהל.
אם אתם מתחברים לשירות שפורסם ונפרס בכמה אזורים, ויצרתם כמה NEGs של Private Service Connect כדי להתחבר לכל קובץ מצורף של שירות, אתם יכולים להוסיף את כל ה-NEGs לשירות העורפי.
למרות ש-NEG של Private Service Connect הוא אזורי, כל שאר רכיבי איזון העומסים בהגדרה הזו הם גלובליים.
המסוף
בחירת סוג מאזן העומסים
נכנסים לדף Load balancing במסוף Google Cloud .
- לוחצים על Create load balancer (יצירת מאזן עומסים).
- בקטע Type of load balancer, בוחרים באפשרות Application Load Balancer (HTTP/HTTPS) ולוחצים על Next.
- בקטע Public facing or internal (פנימי או חיצוני), בוחרים באפשרות Public facing (external) (חיצוני) ולוחצים על Next (הבא).
- לפריסה גלובלית או פריסה באזור יחיד, בוחרים באפשרות הכי מתאים לעומסי עבודה גלובליים ולוחצים על הבא.
- בקטע Load balancer generation (דור מאזן העומסים), בוחרים באפשרות Global external Application Load Balancer (מאזן עומסים גלובלי חיצוני של אפליקציות) ולוחצים על Next (הבא).
- לוחצים על Configure (הגדרה).
הגדרה בסיסית
- מזינים שם של מאזן עומסים.
- כדי להמשיך, צריך להשאיר את החלון פתוח.
הגדרות הקצה הקדמי
- לוחצים על Frontend configuration.
- לוחצים על Add frontend IP and port.
- מזינים שם למאזן העומסים.
- בשדה Protocol, בוחרים באפשרות HTTPS (includes HTTP/2).
- מוודאים שהיציאה מוגדרת ל-
443כדי לאפשר תנועה של HTTPS. בשביל IP address, בוחרים את כתובת ה-IP ששמרתם.
לוחצים על הרשימה אישור ובוחרים את האישור שיצרתם.
לוחצים על OK.
לוחצים על סיום.
הגדרת הקצה העורפי
קבוצה של נקודות קצה ברשת מסוג Private Service Connect היא סוג של קצה עורפי של מאזן עומסים. מוסיפים את כל קבוצות ה-NEG של Private Service Connect לאותו שירות מנוהל לשירות לקצה העורפי.
- לוחצים על Backend configuration.
- לוחצים על הרשימה שירותי קצה עורפי וקטגוריות קצה עורפי ואז על יצירת שירות קצה עורפי.
- מזינים שם לשירות לקצה העורפי.
- מגדירים את סוג הקצה העורפי בתור קבוצה של נקודות קצה ברשת מסוג Private Service Connect.
- בקטע Backends לוחצים על הרשימה Private Service Connect network endpoint group ובוחרים את ה-NEG מסוג Private Service Connect שיצרתם. לוחצים על סיום.
אם יצרתם יותר מקבוצה אחת של נקודות קצה ברשת מסוג Private Service Connect, לוחצים על הוספת קצה עורפי כדי לבחור עוד קבוצה של נקודות קצה ברשת.
חוזרים על השלב הזה עד שכל ה-NEGs של השירות המנוהל הזה מתווספים לשירות הקצה העורפי.
לוחצים על יצירה.
כללי ניתוב
מכיוון שההגדרה הזו מכילה רק שירות לקצה העורפי אחד, כלל הניתוב שמוגדר כברירת מחדל מספיק ואין צורך לבצע שינויים בקטע הזה.
בדיקה וסיום
- כדי לבדוק את ההגדרות, לוחצים על בדיקה וסיום.
- לוחצים על יצירה.
gcloud
יוצרים שירות קצה עורפי לשירות המנוהל שרוצים להתחבר אליו.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --globalמחליפים את
BACKEND_SERVICE_NAMEבשם של שירות ה-Backend.מוסיפים את ה-NEG של Private Service Connect שמפנה לשירות היעד.
אם יצרתם כמה NEGs באזורים שונים לאותו שירות, צריך לחזור על השלב הזה כדי להוסיף את כל ה-NEGs לשירות הקצה העורפי.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=REGION \ --global
מחליפים את מה שכתוב בשדות הבאים:
-
BACKEND_SERVICE_NAME: השם של שירות הקצה העורפי. -
NEG_NAME: השם של קבוצת נקודות הקצה ברשת. -
REGION: האזור של קבוצת נקודות הקצה ברשת.
-
יוצרים מפת URL למאזן העומסים.
מפת URL חייבת להפנות לשירות לקצה העורפי שמוגדר כברירת מחדל. מגדירים את שירות הקצה העורפי שיצרתם כשירות הקצה העורפי שמוגדר כברירת מחדל.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=BACKEND_SERVICE_NAME \ --global
מחליפים את מה שכתוב בשדות הבאים:
URL_MAP_NAME: שם למפת URL.
BACKEND_SERVICE_NAME: השם של שירות הקצה העורפי שמוגדר כברירת המחדל במאזן העומסים. ברירת המחדל משמשת כשאין כלל מארח שתואם לשם המארח המבוקש.
יוצרים את שרת ה-proxy של HTTPS ליעד.
משתמשים במשאב של אישור ה-SSL שיצרתם כדי ליצור שרת proxy של HTTPS ליעד.
gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE
מחליפים את מה שכתוב בשדות הבאים:
-
PROXY_NAME: שם ל-proxy ל-HTTPS עם יעד. -
URL_MAP_NAME: השם של מפת URL. -
CERTIFICATE: השם של משאב האישור.
-
יוצרים את כלל ההעברה.
gcloud compute forwarding-rules create FWD_RULE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=ADDRESS_NAME \ --target-https-proxy=PROXY_NAME \ --ports=443 \ --globalמחליפים את מה שכתוב בשדות הבאים:
FWD_RULE: שם לכלל ההעברה.
ADDRESS_NAME: משאב כתובת ה-IP שהזמנתם לשימוש בכלל ההעברה.
PROXY_NAME: השם של שרת ה-proxy ל-HTTPS של היעד.
הגדרת רשומות DNS
אם רוצים לגשת לעורף השרת של Private Service Connect באמצעות שם DNS, צריך ליצור שמות DNS לכל כלל העברה חיצוני. רשומת ה-DNS צריכה להתאים לשם במפת URL. אלא אם מפת ה-URL משנה את השמות, רשומת ה-DNS צריכה להתאים לשמות ששירות היצרן מצפה להם.
אם אתם משתמשים ב-Cloud DNS כדי לנהל את ה-DNS, תוכלו לקרוא את המאמר בנושא הוספת רשומת DNS.
אימות ההגדרה
יוצרים את המכונה הווירטואלית.
gcloud compute instances create VM_NAME \ --network=NETWORK \ --image-project=debian-cloud --image-family=debian-11 \ --zone=ZONEמחליפים את מה שכתוב בשדות הבאים:
VM_NAME: שם למכונה הווירטואלית.
NETWORK: הרשת של המכונה הווירטואלית.
ZONE: האזור של המכונה הווירטואלית.
מתחברים ל-VM.
gcloud compute ssh VM_NAME --zone=ZONE
משתמשים ב-
curlכדי לאמת את ההגדרה. הפקודה הזו מגדירה את הכותרתHostומדלגת על פענוח DNS על ידי ציון כתובת IP שהוגדרה על ידי המשתמש. אפשר להשמיט את היציאה אם משתמשים ביציאה שמוגדרת כברירת מחדל לפרוטוקול, למשל, שימוש ביציאה 443 ל-HTTPS.אפשר לדלג על אימות האישור באמצעות הדגל
-k. יכול להיות שתצטרכו לדלג על האימות אם השתמשתם באישור בחתימה עצמית כדי להגדיר את שרת ה-proxy של יעד ה-HTTPS, או אם למכונה הווירטואלית אין את האישור של רשות האישורים שחתמה על האישור שלכם.curl [-k] -s 'https://HOST:443/RESOURCE_URI' \ -H 'Host: HOST' \ --connect-to HOST:443:FWD_RULE_IP_ADDRESS:443מחליפים את מה שכתוב בשדות הבאים:
HOST: שם המארח שמוגדר במפת ה-URL.
RESOURCE_URI: שאר ה-URI של המשאב שרוצים להשתמש בו לאימות.
FWD_RULE_IP_ADDRESS: כתובת ה-IP שהוקצתה לכלל ההעברה.
בעיות מוכרות
כשלים בבדיקת התקינות עם קבוצות NEG גלובליות
יש בעיה מוכרת ב-NEGs של צרכנים ב-Private Service Connect שהוגדרו לגישה גלובלית. Private Service Connect NEG מוגדר לגישה גלובלית אם הוא משויך לשירות לקצה העורפי גלובלי.
אם מחברים NEG של Private Service Connect שהוגדר לגישה גלובלית למאזן עומסים של בעלים של שירות מנוהל, והבעלים של השירות המנוהל משבית את הגישה הגלובלית למאזן העומסים הזה, בדיקות תקינות לא פועלות בצורה תקינה. כתוצאה מכך, יכול להיות שתנועה תישלח לשרתי קצה עורפיים לא תקינים ותיפסל.
אם אתם ניגשים לשירות שפורסם באמצעות Private Service Connect NEG שהוגדר לגישה גלובלית, והקצה העורפי שלכם מושפע מהבעיה הזו, אתם יכולים לבצע אחת מהפעולות הבאות:
- אם רוצים להשתמש בגישה גלובלית, צריך לבקש מבעלים של שירות מנוהל להפעיל גישה גלובלית למאזן העומסים שלו.
- אם אתם לא רוצים להשתמש בגישה גלובלית, אתם יכולים להגדיר מחדש את ה-NEG של Private Service Connect לגישה אזורית. כדי לעשות את זה, צריך להסיר את ה-NEG של Private Service Connect משירות ה-backend הגלובלי ואז לצרף את ה-NEG לשירות backend אזורי.
הגדרה מחדש של קצה עורפי מסוג Private Service Connect NEG לגישה אזורית משבשת באופן זמני את התנועה ברשת דרך הקצה העורפי.
פתרון בעיות
היצירה של הקצה העורפי מצליחה, אבל לא נוצרת קישוריות
אם יצרתם בהצלחה קצה עורפי לשירותים שפורסמו, אבל לא נוצר חיבור, כדאי לבדוק את סטטוס החיבור של הקצה העורפי. יכול להיות שסטטוס החיבור יציין פעולות שאפשר לבצע כדי לפתור את הבעיה.
היצירה של הקצה העורפי מצליחה, אבל הבעלים של השירות המנוהל מסרב לחיבור
אם מופיעה שגיאת connection refused, בדרך כלל זה אומר ששרת הקצה העורפי של היצרן לא מאזין ליציאה שהלקוח מנסה להתחבר אליה.
צריך לבקש מבעלי השירות לבדוק אם השירות שלהם מאזין ליציאה שציינתם.
אם שירות היצרן מתארח במאזן עומסי רשת פנימי מסוג passthrough שמשתמש בכמה יציאות, צריך לציין את יציאת היצרן המתאימה בהגדרת ה-NEG של Private Service Connect. מידע נוסף על הגדרת יציאת יצרן
יש בעיות בביצועים או פסק זמן בחיבור של ה-Backend
אם יש בעיות בביצועים של ה-Backend או פסק זמן לחיבור לסירוגין, יכול להיות שהסיבה לכך היא אובדן מנות. כדי לבדוק אם חבילות נשרו, אפשר לעיין במדדים שמתוארים בקטעים הבאים.
מנות שהושמטו לשירות שפורסם
המדד private_service_connect/consumer/dropped_sent_packets_count עוקב אחרי מנות מצרכן Private Service Connect, כמו קצה עורפי, לשירות שפורסם, שנפסלו כי הקצה העורפי חרג מהמספר המקסימלי של החיבורים לשירות.
אם מערכת עורפית מדווחת על ערכים של המדד הזה, כדאי לנסות את הפתרונות הבאים:
- יוצרים קצה עורפי נוסף שמתחבר לשירות שפורסם.
- צריך לצמצם את מספר החיבורים דרך ה-Backend הזה.
- לבקש מבעלים של שירות מנוהל להגדיל את הקיבולת של השירות שפורסם – למשל, על ידי הוספה של עוד מכונות וירטואליות (VM) או נקודות קצה ברשת.
מנות שהושמטו משירותים שפורסמו
המדד private_service_connect/consumer/dropped_received_packets_count עוקב אחרי חבילות שנשלחות משירות שפורסם לצרכן Private Service Connect, כמו בק-אנד, שמושלכות כי Private Service Connect לא יכול למצוא חיבור תואם לחבילות תגובה.
ב-Private Service Connect מותרים רק חיבורים שיוצאים מרשת ה-VPC של הצרכן. כשצרכן יוזם חיבור, המערכת עוקבת אחרי החיבור כדי להתאים מנות תגובה מהשירות שפורסם לחיבור קיים. אם Private Service Connect לא מוצא התאמה לחבילת תגובה, החבילה מושמטת.
יכול להיות ש-Private Service Connect לא ימצא התאמה לחבילת תגובה אם שירות שפורסם ישלח חבילות תגובה אחרי שפג הזמן הקצוב לתפוגה של החיבור. אם מוצגים ערכים למדד הזה, צריך לפנות לבעלים של שירות מנוהל. יכול להיות שהם יוכלו להגדיר את השירות שלהם כדי למנוע את הבעיה הזו.