הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge
בדף הזה מוסבר איך ליצור ApigeeBackendService ואת תוסף התעבורה הנדרש ב-Google Kubernetes Engine (GKE) Gateway שפועל באשכול.
הגישה הזו היא חלופה לשימוש ב-APIMExtensionPolicy כדי לזהות את מישור הנתונים של Apigee כנקודת ההחלטה בנושא מדיניות (PDP) עבור שער GKE.
כשיוצרים ApigeeBackendService, Apigee Operator for Kubernetes יוצר באופן אוטומטי APIMExtensionPolicy עם אותו שם ומרחב שמות כמו ApigeeBackendService.
זהו הגיבוי APIMExtensionPolicy.
אנחנו ממליצים על הגישה הזו אם אתם יוצרים ומנהלים תוספים של תעבורת נתונים ב-Cloud Load Balancing ורוצים להוסיף את Apigee כתוסף במשאב תוסף תעבורת הנתונים. חובה להשתמש בתוסף ApigeeBackendService אם תוסף התנועה של Apigee פועל בשילוב עם תוספי תנועה אחרים.
לפני שמתחילים
לפני שמתחילים במשימה הזו, צריך לבצע את השלבים הבאים:
- מוודאים שההטמעה של GKE משתמשת בגרסה GKE 1.34.x ואילך.
- מוודאים שמוגדר Workload Identity באשכול GKE. השלבים הנדרשים מפורטים במאמר יצירת זהות של עומס עבודה.
- מוודאים ששער GKE מוגדר באשכול ופועל. פרטים נוספים מופיעים במאמר בנושא פריסת שערים.
- מתקינים את Apigee Operator ל-Kubernetes. הוראות ההתקנה מופיעות במאמר התקנת Apigee Operator ל-Kubernetes.
התפקידים הנדרשים
אם הקציתם לחשבון השירות את התפקידים הנדרשים כמו שמתואר במאמר התקנת Apigee Operator ל-Kubernetes, לא צריך להקצות תפקידים או הרשאות נוספים ב-IAM כדי להשלים את המשימות האלה.
אתם יכולים לאשר פעולות במשאבים באשכול Google Kubernetes Engine באמצעות מנגנון בקרת הגישה מבוססת-תפקידים (RBAC) המובנה ב-Kubernetes. מידע נוסף זמין במאמר מתן הרשאה לפעולות באשכולות באמצעות בקרת גישה מבוססת-תפקידים.
יצירת משאב ApigeeBackendService
כדי להגדיר תוסף של שירות תעבורה ב-GKE Gateway, צריך ליצור שני משאבים עיקריים:
- ApigeeBackendService: המשאב המותאם אישית הזה מציין את מישור הנתונים של Apigee כנקודת קבלת ההחלטות (PDP) בנושא מדיניות, ומגדיר את פרטי הרשת עבור קבוצות של נקודות קצה ברשת (NEGs) מסוג Private Service Connect.
- GCPTrafficExtension: משאב ה-API של GKE Gateway הזה מגדיר את שרשרת התוספים, כולל איך התנועה מנותבת אל ApigeeBackendService.
יצירת ApigeeBackendService
משאב ApigeeBackendService מציין את מישור הנתונים של Apigee כ-PDP עבור GCPTrafficExtension.
כדי ליצור ApigeeBackendService:
- יוצרים קובץ YAML בשם
apigee-backend-service.yamlעם התוכן הבא: - ENV_NAME היא סביבת Apigee שבה רוצים להשתמש. זה דומה לשדה
apigeeEnvב-APIMExtensionPolicy. השדה הזה הוא אופציונלי ב-Apigee וחובה ב-Hybrid. - SECURITY_ENABLED (אופציונלי) מציין אם מדיניות ברירת המחדל של Apigee לאימות מפתח API ולבדיקות מכסת שימוש מופעלת באופן אוטומטי. אם לא מציינים ערך, ברירת המחדל היא
true. - REGION_NAME_1 מציין את האזור שבו פורסים את GKE Gateway.
- NETWORK_NAME_1 ו-SUBNET_NAME_1 מציינים את מזהי ה-URI המלאים של המשאבים של הרשת ושל רשת המשנה שבהן נוצרים ה-NEGs של Private Service Connect. לדוגמה,
projects/my-project/global/networks/my-defaultו-projects/my-project/regions/us-central1/subnetworks/my-default. בדרך כלל, הן זהות לרשת ולרשת המשנה של אשכול GKE. - התכונות REGION_NAME_2, NETWORK_NAME_2 וגם SUBNET_NAME_2 הן אופציונליות. צריך אותם אם פורסים את תוסף התנועה של Apigee בכמה אזורים.
- מחילים את קובץ ה-YAML על האשכול במרחב השמות
default:kubectl apply -f apigee-backend-service.yaml
- מוודאים שהתיקייה
ApigeeBackendServiceנוצרה בהצלחה:kubectl get apigeebackendservice
הפלט אמור להיראות כך:
NAMESPACE NAME STATE ERRORMESSAGE default default-ext-lb1-apim-policy CREATED
# apigee-backend-service.yaml kind: ApigeeBackendService apiVersion: apim.googleapis.com/v1 metadata: name: my-apigee-extension-backend-service spec: apigeeEnv: ENV_NAME # optional for Apigee, required for hybrid defaultSecurityEnabled: SECURITY_ENABLED locations: # required field - name: REGION_NAME_1 network: NETWORK_NAME_1 subnet: SUBNET_NAME_1 - name: REGION_NAME_2 network: NETWORK_NAME_2 subnet: SUBNET_NAME_2
כאשר:
כשיוצרים ApigeeBackendService, Apigee Operator for Kubernetes יוצר באופן אוטומטי APIMExtensionPolicy עם אותו שם ומרחב שמות כמו ApigeeBackendService.
זהו הגיבוי APIMExtensionPolicy.
אם הערך של defaultSecurityEnabled הוא true, Apigee Operator for Kubernetes מוסיף באופן אוטומטי את מפתח ה-API ואת מדיניות הקצאה (Quota) שמוגדרים כברירת מחדל ל-APIMExtensionPolicy. כדי להוסיף עוד מדיניות, אפשר לעיין במאמר הוספת מדיניות ל-GKE Gateway.
יצירת משאב GCPTrafficExtension
המשאבGCPTrafficExtension מגדיר תוסף ל-Apigee ומפנה אל ApigeeBackendService שנוצר בשלב הקודם בתור backendRef.
פרטים נוספים על הגדרת GCPTrafficExtension זמינים במאמר הגדרת תוספים לשירותים.
השדה supportedEvents מציין אילו חלקים ממחזור החיים של הבקשה והתשובה נחשפים לתוסף. ה-Apigee Operator for Kubernetes תומך באירועים הבאים:
RequestHeadersRequestBodyRequestTrailersResponseHeadersResponseBodyResponseTrailers
RequestBody ואת ResponseBody ברשימה supportedEvents.
מידע נוסף על אירועים נתמכים זמין במאמר בנושא תוספים של תנועה ב-Cloud Load Balancing.
כדי ליצור GCPTrafficExtension:
- יוצרים קובץ YAML בשם
gcp-traffic-extension.yamlעם התוכן הבא:# gcp-traffic-extension.yaml kind: GCPTrafficExtension apiVersion: networking.gke.io/v1 metadata: name: my-apigee-extension spec: targetRefs: - group: "gateway.networking.k8s.io" kind: Gateway name: GATEWAY_NAME # Replace with your GKE Gateway name extensionChains: - name: EXTENSION_CHAIN_NAME matchCondition: celExpressions: - celMatcher: request.path.startsWith("/") extensions: - name: EXTENSION_NAME metadata: # This metadata label must match the name of the ApigeeBackendService apigee-extension-processor : APIGEE_BACKEND_SERVICE_NAME failOpen: false supportedEvents: - SUPPORTED_EVENT1 - SUPPORTED_EVENT2 timeout: 1s requestBodySendMode: FullDuplexStreamed backendRef: # References the ApigeeBackendService by
kindandnamekind: ApigeeBackendService name: APIGEE_BACKEND_SERVICE_NAME Port: 443כאשר:
- GATEWAY_NAME הוא השם של שער GKE שאליו התוסף חל.
- EXTENSION_CHAIN_NAME הוא השם של שרשרת התוספים.
- EXTENSION_NAME הוא השם של תוסף שירות התנועה.
- APIGEE_BACKEND_SERVICE_NAME הוא השם של
ApigeeBackendServiceשיצרתם קודם. התווית הזו בתוך הבלוקextensionsחייבת להיות זהה ל-metadata.nameשלApigeeBackendServiceשנוצר קודם. - השדה
supportedEventsמציין אילו חלקים במחזור החיים של הבקשה והתגובה נחשפים לתוסף. ה-Apigee Operator for Kubernetes תומך באירועים הבאים:RequestHeadersRequestBodyRequestTrailersResponseHeadersResponseBodyResponseTrailers
RequestBodyואתResponseBodyברשימהsupportedEvents. מידע נוסף על אירועים נתמכים זמין במאמר בנושא תוספים של תנועה ב-Cloud Load Balancing.
- מחילים את קובץ ה-YAML על האשכול:
kubectl apply -f gcp-traffic-extension.yaml