VPC Service Controls ל-Cloud Service Mesh (מנוהל)
Cloud Service Mesh (מנוהל) תומך ב-VPC Service Controls כתכונה זמינה לכלל המשתמשים (GA) למישורי בקרה חדשים.
כדי לבדוק אם מישור הבקרה שלכם תומך ב-VPC Service Controls GA, בודקים את מצב התכונה mesh של המינוי שלכם בתנאי VPCSC_GA_SUPPORTED.
gcloud container fleet mesh describe --project FLEET_PROJECT_ID
הפלט אמור להיראות כך:
(...) membershipStates: projects/FLEET_PROJECT_NUMBER/locations/MEMBERSHIP_LOCATION/memberships/MEMBERSHIP_ID: servicemesh: conditions: - code: VPCSC_GA_SUPPORTED details: This control plane supports VPC Service Controls GA. documentationLink: http://cloud.google.com/service-mesh/docs/managed/VPC Service Controls severity: INFO (...)
אם יש לכם מישור בקרה קיים שלא מדווח על התנאי VPCSC_GA_SUPPORTED ואתם רוצים להסתמך על VPC Service Controls, פנו לתמיכה.
לפני שמתחילים
מדיניות הארגון וגבולות גזרה לשירות ב-VPC Service Controls מוגדרים ברמת הארגון. מוודאים שהוקצו לכם התפקידים המתאימים לניהול VPC Service Controls.
הגדרת גבולות גזרה לשירות ב-VPC Service Controls
יוצרים או מעדכנים את גבולות הגזרה לשירות:
מוסיפים את הפרויקטים של האשכולות ואת פרויקט ה-Fleet לגבולות גזרה לשירות. אין תמיכה בפריסת Service mesh על פני מספר גבולות גזרה של VPC Service Controls.
מוסיפים את השירותים המוגבלים לגבולות גזרה לשירות.
כדי שלקלאסטר Cloud Service Mesh תהיה גישה לשירותים מסוימים, צריך להוסיף אותם לרשימות השירותים המותרים והמוגבלים בגבולות גזרה לשירות. הגישה לשירותים האלה מוגבלת גם ברשת הענן הווירטואלי הפרטי (VPC) של האשכול.
אם לא מוסיפים את השירותים האלה, יכול להיות שההתקנה של Cloud Service Mesh תיכשל או שהשירות לא יפעל כמו שצריך. לדוגמה, אם לא מוסיפים את Mesh Configuration API לגבולות גזרה לשירות, ההתקנה תיכשל ועומסי העבודה לא יקבלו את הגדרת Envoy שלהם ממישור הבקרה המנוהל.
המסוף
- כדי לערוך את גבולות הגזרה לשירות, פועלים לפי השלבים שבקטע עדכון של service perimeter.
- לוחצים על הדף עריכת גבולות גזרה לשירות VPC.
- בקטע שירותים מוגבלים, שירותים להגנה, לוחצים על הוספת שירותים.
- בתיבת הדו-שיח Specify services to restrict (ציון שירותים להגבלה), לוחצים על Filter services (סינון שירותים) ומזינים Mesh Configuration API (API להגדרת רשת).
- מסמנים את תיבת הסימון של השירות.
- לוחצים על Add Mesh Configuration API (הוספת API להגדרת רשת).
- חוזרים על שלבים ג עד ו כדי להוסיף:
- Cloud Service Mesh Certificate Authority API
- GKE Hub API
- Cloud IAM API
- Cloud Monitoring API
- Cloud Trace API
- Cloud Monitoring API
- Google Cloud Resource Manager API
- Google Compute Engine API
- Google Container Registry API
- Artifact Registry API
- Google Cloud Storage API
- Cloud Logging API
- Security Token Service API
- לוחצים על Save.
gcloud
כדי לעדכן את רשימת השירותים המוגבלים, משתמשים בפקודה
updateומציינים את השירותים שרוצים להוסיף כרשימה מופרדת בפסיקים:gcloud access-context-manager perimeters update PERIMETER_NAME \ --add-restricted-services=meshconfig.googleapis.com,meshca.googleapis.com,gkehub.googleapis.com,iam.googleapis.com,monitoring.googleapis.com,cloudtrace.googleapis.com,monitoring.googleapis.com,cloudresourcemanager.googleapis.com,compute.googleapis.com,containerregistry.googleapis.com,artifactregistry.googleapis.com,storage.googleapis.com,logging.googleapis.com,sts.googleapis.com \ --policy=POLICY_NAME
כאשר:
PERIMETER_NAME הוא השם של גבולות גזרה לשירות שרוצים לעדכן.
POLICY_NAME הוא השם המספרי של מדיניות הגישה של הארגון. לדוגמה,
330193482019.
לוחצים על VPC Accessible services (שירותים שאפשר לגשת אליהם מ-VPC) ומגדירים את האפשרות 'All restricted services' (כל השירותים המוגבלים), כדי שעדיין תהיה גישה לשירותים שהוגבלו בשלב הקודם מתוך גבולות הגזרה של VPC Service Controls.
אלא אם אתם מתקינים את Cloud Service Mesh מרשת שנמצאת בתוך גבולות הגזרה, הוסיפו כלל תעבורת נתונים נכנסת (ingress) כדי לאפשר לזהות שמריצה את הפקודה
asmcliגישה לגבולות הגזרה של השירות.מידע נוסף זמין במאמר בנושא עדכון גבולות גזרה לשירות.
התקנת Cloud Service Mesh מנוהל במתחם היקפי של VPC Service Controls
פועלים לפי השלבים במאמר הגדרת Cloud Service Mesh מנוהל. לאחר מכן, מוודאים שמישור הבקרה הוקצה בהצלחה ושאין שגיאות שקשורות ל-VPC Service Controls.
פתרון בעיות
אי אפשר ליצור אשכול עם תמונת GKE 1.22 העדכנית
יש בעיה ידועה שמונעת יצירה של אשכול עם התמונה העדכנית 1.22 בסביבה מוגבלת של VPC Service Controls. הפתרון העקיף הוא ליצור את האשכול הזה קודם עם תמונת הערוץ של GKE שמוגדרת כברירת מחדל, ואז לשדרג את התמונה:
gcloud container clusters create CLUSTER \ --region REGION \ --release-channel=rapid \ --workload-pool=PROJECT_ID.svc.id.goog \ --project PROJECT_ID
gcloud container clusters upgrade CLUSTER \ --region REGION \ --master --cluster-version 1.22 \ --project PROJECT_ID
אין אפשרות להוריד תמונות מהמאגרי מידע.
מצב כזה יכול לקרות אם התמונות ממוקמות מחוץ לגבולות גזרה לשירות. אפשר להעביר את התמונות למאגר שנמצא בתוך גבולות הגזרה, או לעדכן את גבולות הגזרה כדי להוסיף כלל יציאה. בדרך כלל, כלל היציאה עשוי לאפשר לישויות נבחרות לגשת אל Container Registry API, Artifact Registry API ו-Cloud Storage API.
בשדה Status של ControlPlaneRevision CRD מוצגות שגיאות של VPC Service Controls
כדי לקבל מידע נוסף על השגיאה, מריצים את הפקודה הבאה:
gcloud logging read --project=PROJECT_ID \ 'protoPayload.metadata.@type=type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata'
כאשר:
- PROJECT_ID הוא מזהה הפרויקט שבו מתרחשות שגיאות.