הדף הזה מתייחס ל-Apigee, אבל לא ל-Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge
בדף הזה מוסבר איך להתקין ולהגדיר את Apigee Operator ל-Kubernetes. מידע נוסף על היתרונות של שימוש ב-Apigee Operator for Kubernetes זמין במאמר סקירה כללית של Apigee Operator for Kubernetes.
לפני שמתחילים
לפני שמתקינים את Apigee Operator for Kubernetes, צריך לוודא שיש לכם את התפקידים וההרשאות הנדרשים כדי להשלים את השלבים, ושהשלמתם את המשימות המקדימות שמתוארות במאמר Apigee Operator for Kubernetes: לפני שמתחילים.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להתקנת Apigee Operator for Kubernetes, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בארגון:
-
יצירה וניהול של אשכול GKE:
אדמין של קונטיינרים (
roles/container.admin) -
יצירה וניהול של חשבונות שירות:
אדמין של חשבון שירות (
roles/iam.serviceAccountAdmin) -
יצירה וניהול של Service Extensions:
אדמין של Service Extensions (
roles/networkservices.serviceExtensionsAdmin) -
יצירה וניהול של קבוצות נקודות קצה ברשת (NEGs):
אדמין של מופע Compute (
roles/compute.instanceAdmin) -
יצירה וניהול של שירותים לקצה העורפי:
אדמין של איזון עומסים ב-Compute (
roles/compute.loadBalancerAdmin) -
יצירה וניהול של משאבי Apigee:
אדמין Apigee (
roles/apigee.admin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
התקנה והגדרה של Apigee Operator ל-Kubernetes
בקטעים הבאים מפורטים השלבים להתקנה ולהגדרה של Apigee Operator for Kubernetes:
- הגדרה של משתני סביבה
- מפעילים את ממשקי ה-API הנדרשים.
- אחזור והגדרה של פרטי כניסה
- יוצרים זהות של עומס עבודה.
- איך מתקינים את Apigee Operator for Kubernetes
- יצירת סביבת Apigee
- אימות ההגדרה של GKE Gateway
הגדרה של משתני סביבה
בפרויקט Google Cloud שמכיל את מופע Apigee, משתמשים בפקודה הבאה כדי להגדיר משתני סביבה:
export PROJECT_ID=PROJECT_IDexport CLUSTER_NAME=CLUSTER_NAMEexport REGION=REGIONexport APIGEE_ORG=APIGEE_ORG
כאשר:
-
PROJECT_IDהוא מזהה הפרויקט עם מופע Apigee. -
CLUSTER_NAMEהוא השם של אשכול GKE. -
REGIONהוא האזור של אשכול GKE. - הערך של
APIGEE_ORGזהה לערך שלPROJECT_ID.
כדי לוודא שמשתני הסביבה מוגדרים בצורה נכונה, מריצים את הפקודה הבאה:
echo $PROJECT_ID $CLUSTER_NAME $REGION $APIGEE_ORG
הפעלת ממשקי ה-API הנדרשים
ל-Apigee Operator for Kubernetes נדרשת גישה לממשקי ה-API הבאים:
| שם | כותרת |
|---|---|
apigee.googleapis.com |
Apigee API |
compute.googleapis.com |
Compute Engine API |
networkservices.googleapis.com |
Network Services API |
container.googleapis.com |
Kubernetes Engine API |
משתמשים בפקודה הבאה כדי לוודא שממשקי ה-API הנדרשים מופעלים:
gcloud services list --project=$PROJECT_ID
אם ממשקי ה-API הנדרשים לא מופיעים בפלט פקודה, מפעילים אותם:
gcloud services enable apigee.googleapis.com --project=$PROJECT_IDgcloud services enable compute.googleapis.com --project=$PROJECT_IDgcloud services enable networkservices.googleapis.com --project=$PROJECT_IDgcloud services enable container.googleapis.com --project=$PROJECT_ID
אחזור והגדרה של פרטי כניסה
מאחזרים את פרטי הכניסה של האשכול ויוצרים חשבון שירות כדי להתחבר לשירותים: Google Cloud
מקבלים את פרטי הכניסה של האשכול באמצעות הפקודה הבאה:
gcloud container clusters get-credentials $CLUSTER_NAME --location=$REGION --project=$PROJECT_ID
פרטי הכניסה האלה משמשים לתקשורת עם אשכול GKE שנוצר בשלבים שלפני.
- הגדרת פרטי כניסה של חשבון שירות כדי להתחבר לשירותים: Google Cloud
gcloud iam service-accounts create apigee-apim-gsa
- מקצים לחשבון השירות שיצרתם את התפקידים וההרשאות הנדרשים באמצעות הפקודות הבאות:
- תפקיד אדמין ב-Apigee: נדרש כדי ליצור ולנהל משאבים ב-Apigee.
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "serviceAccount:apigee-apim-gsa@$PROJECT_ID.iam.gserviceaccount.com" \ --role "roles/apigee.admin"
- תפקיד אדמין של תוסף שירות: נדרש כדי ליצור ולנהל תוספי שירות.
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "serviceAccount:apigee-apim-gsa@$PROJECT_ID.iam.gserviceaccount.com" \ --role "roles/networkservices.serviceExtensionsAdmin"
- תפקיד אדמין ברשת: נדרש לניהול הגישה ל-Apigee באמצעות תוספי שירות.
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "serviceAccount:apigee-apim-gsa@$PROJECT_ID.iam.gserviceaccount.com" \ --role "roles/compute.networkAdmin"
- תפקיד אדמין במאזן העומסים: נדרש לניהול הגישה בין קבוצות של נקודות קצה ברשת (NEGs) לבין שירותים לקצה העורפי.
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "serviceAccount:apigee-apim-gsa@$PROJECT_ID.iam.gserviceaccount.com" \ --role "roles/compute.loadBalancerAdmin"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "serviceAccount:apigee-apim-gsa@$PROJECT_ID.iam.gserviceaccount.com" \ --role "roles/iam.workloadIdentityUser"
- תפקיד אדמין ב-Apigee: נדרש כדי ליצור ולנהל משאבים ב-Apigee.
יצירת זהות של עומס עבודה
התקנת Apigee Operator for Kubernetes בשלב הבא יוצרת חשבון שירות (KSA) נדרש של Kubernetes בשם apim-ksa במרחב השמות apim. כשחשבון השירות נוצר, הוא מכיל את ההערה שנדרשת כדי לשייך אותו ל-Workload Identity שמשמש את Apigee Operator for Kubernetes כדי לגשת למשאבים הנדרשים של Apigee ושל Service Networking.helm
כדי ליצור את הזהות של עומס העבודה, משתמשים בפקודה הבאה:
gcloud iam service-accounts add-iam-policy-binding apigee-apim-gsa@$PROJECT_ID.iam.gserviceaccount.com --role roles/iam.workloadIdentityUser --member "serviceAccount:$PROJECT_ID.svc.id.goog[apim/apim-ksa]"
הפקודה הזו מקשרת את ה-KSA לחשבון השירות Google שיצרתם במאמר בנושא אחזור והגדרה של פרטי כניסה ומקצה את התפקיד workloadIdentityUser.
יכול להיות שיעברו כמה דקות, אולי 7 דקות או יותר, עד שהשינויים בזהות של עומס העבודה יתעדכנו במערכת. תאמתו את הזהות הזו בשלב מאוחר יותר, אחרי התקנת האופרטור.
התקנת Custom Resource Definitions (CRD) ו-Apigee Operator ל-Kubernetes
מתקינים את הגדרות המשאבים המותאמים אישית (CRD) של Kubernetes ואת Apigee Operator for Kubernetes:
- יוצרים מרחב שמות עבור Apigee Operator for Kubernetes:
kubectl create ns apim
- מתקינים את Apigee Operator עבור CRD של Kubernetes:
helm install apigee-apim-crds -n apim \ oci://us-docker.pkg.dev/apigee-release/apigee-k8s-tooling-helm-charts/apigee-apim-operator-crds \ --version 1.1.1 \ --atomic
- מתקינים את Apigee Operator ל-Kubernetes:
helm install apigee-apim-operator -n apim \ oci://us-docker.pkg.dev/apigee-release/apigee-k8s-tooling-helm-charts/apigee-apim-operator-helm \ --version 1.1.1 \ --set projectId=$PROJECT_ID \ --set serviceAccount=apigee-apim-gsa@$PROJECT_ID.iam.gserviceaccount.com \ --set apigeeOrg=$PROJECT_ID \ --set generateEnv=ENV_GENERATION_MODE \ --atomic
מחליפים את
ENV_GENERATION_MODEב-TRUEאם רוצים שהאופרטור ייצור סביבת Apigee חדשה כשמתקינים את Apigee Operator for Kubernetes. מגדירים אתENV_GENERATION_MODEל-FALSEאם רוצים ליצור את הסביבה באופן ידני אחרי התקנת האופרטור. מידע נוסף זמין במאמר בנושא יצירת סביבת Apigee. - מוודאים שההתקנה הושלמה בהצלחה:
helm list -n apim
הפלט אמור להיראות כך:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION apigee-apim-crds apim 1 2025-02-01 00:17:03.399810627 +0000 UTC deployed apigee-apim-operator-crds-1.1.1 1.1.1 apigee-apim-operator apim 1 2025-02-01 00:15:00.362829981 +0000 UTC deployed apigee-apim-operator-helm-1.1.1 1.1.1
- מוודאים שנוצר KSA עם ההערה הנדרשת:
kubectl describe serviceaccounts apim-ksa -n apim
הפלט אמור להיראות כך:
Name: apim-ksa Namespace: apim ... Annotations: iam.gke.io/gcp-service-account: apigee-apim-gsa@my-project-id.iam.gserviceaccount.com
- מוודאים שמפעיל ה-APIM פועל בתרמילי ה-pods של האשכול:
kubectl get pods -n apim
הפלט אמור להיראות כך:
NAME READY STATUS RESTARTS AGE apigee-apim-operator-8559d4994b-h55fl 1/1 Running 0 8m34s
אם הערך של
STATUSהוא לאRunning, או אםREADYלא מציג את הערך1/1, אפשר להיעזר במאמר פתרון בעיות ב-Apigee Operator ל-Kubernetes כדי לפתור את בעיות ההתקנה. - כדי לוודא שזהות עומס העבודה מוגדרת בצורה נכונה, משתמשים בפקודות הבאות:
gcloud config set project $PROJECT_ID
kubectl run --rm -it --image google/cloud-sdk:slim \ --namespace apim workload-identity-test \ --overrides='{ "spec": { "serviceAccountName": "apim-ksa" } }' \ -- gcloud auth list
הפלט אמור להיראות כך:
Credentialed Accounts ACTIVE ACCOUNT * GSA@$PROJECT_ID.iam.gserviceaccount.com
יצירת סביבת Apigee
אם התקנתם את Apigee Operator for Kubernetes באמצעות generateEnv=TRUE בשלב הקודם, האופרטור יוצר סביבת Apigee חדשה כשמדיניות התוסף APIM נוצרת ומוחלת. השם של הסביבה החדשה כולל את הקידומת: apim-enabled-dep-env.
אם התקנתם את Apigee Operator ל-Kubernetes באמצעות generateEnv=FALSE, אתם צריכים ליצור סביבת Apigee חדשה:
- מגדירים את
TOKENשנדרש לפקודהcurl:export TOKEN=$(gcloud auth print-access-token)
- יוצרים את הסביבה באמצעות אחת מהפקודות הבאות:
- לארגונים עם מינוי ל-2021 ול-2024:
curl -i -X POST "https://apigee.googleapis.com/v1/organizations/$APIGEE_ORG/environments" -H \ "Authorization: Bearer $TOKEN" -H "Content-Type:application/json" \ -d '{ "name": "ENV_NAME", "displayName": "ENV_NAME", "state": "ACTIVE", "deploymentType": "PROXY", "apiProxyType": "PROGRAMMABLE", "properties": { "property": [ { "name": "apigee-service-extension-enabled", "value": "true" } ] } }'
כאשר
ENV_NAMEהוא שם הסביבה שרוצים ליצור. - בארגונים עם תשלום לפי שימוש:
curl -i -X POST -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/$APIGEE_ORG/environments" -H "Content-Type:application/json" -d '{ "name": "ENV_NAME", "displayName": "ENV_NAME", "state": "ACTIVE", "deploymentType": "PROXY", "apiProxyType": "PROGRAMMABLE", "type" : "COMPREHENSIVE", "properties": { "property": [ { "name": "apigee-service-extension-enabled", "value": "true" } ] } }'
כאשר:
-
ENV_NAMEהוא שם הסביבה שרוצים ליצור.
-
כדי לוודא שהסביבה נוצרה בהצלחה:
curl -i -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$APIGEE_ORG/environments"
- לארגונים עם מינוי ל-2021 ול-2024:
- מצרפים את הסביבה למופע Apigee:
curl -i -X POST -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$APIGEE_ORG/instances/INSTANCE_NAME/attachments" \ -H "Content-Type:application/json" -d '{"environment": "ENV_NAME"}'
כאשר:
-
INSTANCE_NAMEהוא השם של מופע Apigee. -
ENV_NAMEהוא שם הסביבה שיצרתם בשלב הקודם.
כדי לבדוק את הסטטוס של פעולת צירוף הסביבה:
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$APIGEE_ORG/operations/OPERATION_ID"
OPERATION_IDהוא המזהה של פעולת צירוף הסביבה. -
פתרון בעיות
אם נתקלתם בבעיות בהתקנה של Apigee Operator for Kubernetes, תוכלו לעיין במאמר פתרון בעיות ב-Apigee Operator for Kubernetes כדי למצוא פתרונות לשגיאות נפוצות.
המאמרים הבאים
יוצרים תוסף שירות תעבורה באמצעות APIMExtensionPolicy או ApigeeBackendService: