שלב 5: התקנת סביבת זמן ריצה היברידית

הפעלת הגישה למסנכרן

כדי להפעיל את הגישה לכלי הסנכרון:

  1. יוצרים חשבון שירות ב-Google Cloud ומוסיפים לו את התפקיד אדמין של ארגון Apigee. חשבון השירות הזה ישמש לאימות של קריאה ל-API שתבצעו בשלב מאוחר יותר. דרך קלה ליצור חשבון שירות היא באמצעות מסוף GCP. הוראות מפורטות זמינות במאמר יצירה וניהול של חשבונות שירות במאמרי העזרה של GCP.

    לדוגמה, הפקודות הבאות של gcloud ייצרו את חשבון השירות ויקצו לו את התפקיד Apigee Organization Admin:

    1. יוצרים את החשבון:
      gcloud iam service-accounts create apigee-org-admin \
          --display-name="apigee-org-admin"

      כאשר apigee-org-admin הוא השם של חשבון השירות שאתם יוצרים. מומלץ להשתמש ב-"apigee-org-admin" במדריך הזה.

    2. מקצים לחשבון השירות את התפקיד Apigee Org Admin:
      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member="serviceAccount:apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/apigee.admin"

      כאשר:

      • ‫$PROJECT_ID הוא השם של פרויקט Google Cloud שיצרתם בשלב 2: יצירת פרויקט ב-Google Cloud.
      • ‫apigee-org-admin הוא השם של חשבון השירות שיצרתם.
      • ‫roles/apigee.admin הוא התפקיד Apigee Org Admin.
  2. מורידים את המפתח של חשבון השירות למערכת. משתמשים בפקודה הבאה כדי להוריד את המפתח לספרייה service-accounts/. למידע נוסף, אפשר לעיין בהוראות שבמאמר יצירת מפתחות של חשבונות שירות במסמכי התיעוד של GCP.
    1. חשוב לוודא שאתם נמצאים בספרייה /hybrid-base-directory/hybrid-files/.
    2. הורדת המפתח:
      gcloud iam service-accounts keys create ./service-accounts/$PROJECT_ID-apigee-org-admin.json \
        --iam-account apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com

      הפלט אמור להיראות כך:

      created key [a0b1c2d3e4f5a0b1c2d3e4f5a0b1c2d3e4f5a0b1] of type [json] as [./service-accounts/hybrid-
      example-apigee-org-admin.json] for [apigee-org-admin@my-hybrid.iam.gserviceaccount.com]
      $ 
  3. מריצים את הפקודה הבאה כדי לוודא שהנתיב למפתח של חשבון השירות של אדמין הארגון ב-Apigee נכון:
    ls service-accounts/*admin*

    התוצאה אמורה להיראות בערך כך:

    service-accounts/hybrid-example-apigee-org-admin.json
  4. יוצרים משתנה סביבה ORG_ADMIN_ACCOUNT עם השם של קובץ המפתח. לדוגמה:
    export ORG_ADMIN_ACCOUNT="hybrid-example-2-apigee-org-admin.json"
  5. מריצים את הפקודות הבאות כדי לקבל טוקן:
    export GOOGLE_APPLICATION_CREDENTIALS=./service-accounts/$ORG_ADMIN_ACCOUNT
    export TOKEN=$(gcloud auth application-default print-access-token)
  6. כדי לקבל את כתובת האימייל של חשבון השירות apigee-synchronizer, מריצים את הפקודה הבאה:
    gcloud iam service-accounts list --filter "apigee-synchronizer"

    אם היא תואמת לתבנית apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com, אפשר להשתמש בתבנית הזו בשלב הבא.

  7. קוראים ל-API‏ setSyncAuthorization כדי להפעיל את ההרשאות הנדרשות ל-Synchronizer באמצעות הפקודה הבאה:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:setSyncAuthorization" \
       -d '{"identities":["'"serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com"'"]}'
    

    כאשר:

    • ‫$ORG_NAME: השם של הארגון ההיברידי.
    • ‫apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com: כתובת האימייל של חשבון השירות apigee-syncnronizer.
  8. כדי לוודא שחשבון השירות הוגדר, מריצים את הפקודה הבאה כדי לקרוא ל-API ולקבל רשימה של חשבונות שירות:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:getSyncAuthorization" \
       -d ''
    

    הפלט אמור להיראות כך:

    {
       "identities":[
          "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }

החלת ההגדרה על האשכול

כדי להתקין את Apigee hybrid באשכול:

  1. חשוב לוודא שאתם נמצאים בספרייה hybrid-base-directory/hybrid-files.
  2. כדי לוודא שההקשר של kubectl מוגדר בצורה נכונה, משתמשים בפקודה הבאה. ההקשר הנוכחי צריך להיות מוגדר לאשכול שבו פורסים את Apigee Hybrid.
    kubectl config get-contexts
  3. מבצעים אתחול של הרצת בדיקה. מפעילים את הפקודה init עם הדגל --dry-run. הרצת ניסיון מאפשרת לבדוק אם יש שגיאות לפני שמבצעים שינויים באשכול.

    בגרסה היברידית 1.3, התחביר של הדגל --dry-run תלוי בגרסה של kubectl שמופעלת. בודקים את הגרסה של kubectl באמצעות הפקודה הבאה:

    kubectl version

    ‫kubectl גרסה 1.17 וגרסאות ישנות יותר:

    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=true

    ‫kubectl גרסה 1.18 ואילך:

    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=client
  4. אם אין שגיאות, מריצים את הפקודה init באופן הבא:
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    הפקודה init מתקינה את שירותי הפריסה של Apigee Apigee Deployment Controller ו-Apigee Admission Webhook.

  5. כדי לבדוק את סטטוס הפריסה, אפשר להשתמש בפקודות הבאות:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
    kubectl get pods -n apigee-system
    kubectl get pods -n istio-system

    כשהפודים מוכנים, עוברים לשלב הבא.

  6. מבצעים התקנה של הרצה יבשה. מפעילים את הפקודה apply עם הדגל --dry-run.

    ‫kubectl גרסה 1.17 וגרסאות ישנות יותר:

    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true

    ‫kubectl גרסה 1.18 ואילך:

    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=client
  7. אם אין שגיאות, אפשר להחיל את רכיבי זמן הריצה הספציפיים ל-Apigee על האשכול באמצעות הפקודה הבאה:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  8. כדי לבדוק את סטטוס הפריסה, מריצים את הפקודה הבאה:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    חוזרים על השלב הזה עד שכל ה-pods מוכנים. יכול להיות שיעברו כמה דקות עד שה-pods יופעלו.

הפעלת Apigee Connect

‫Apigee Connect מנהל את התקשורת בין מישור הניהול של Apigee לבין MART במישור זמן הריצה. מידע נוסף זמין במאמר שימוש ב-Apigee Connect.

כדי להפעיל את Apigee Connect:

  1. בשורת הפקודה, מקבלים את פרטי הכניסה לאימות gcloud, כמו בדוגמה הבאה:

    TOKEN=$(gcloud auth print-access-token)

    כדי לוודא שהטוקן אוכלס, משתמשים ב-echo, כמו בדוגמה הבאה:

    echo $TOKEN

    האסימון יוצג כמחרוזת מקודדת.

    למידע נוסף, ראו סקירה כללית של כלי שורת הפקודה של Google Cloud.

  2. כדי לבדוק אם Apigee Connect מופעל בארגון, משתמשים בפקודה הבאה.
    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"

    כאשר $ORG_NAME הוא המזהה של הארגון.

    אם הפלט מכיל את השורה הבאה:

          "name" : "features.mart.connect.enabled",
          "value" : "true"

    ‫Apigee Connect מופעל ואפשר לדלג על שאר הקטע הזה.

  3. מפעילים את Apigee Connect באמצעות הפקודה הבאה:
    curl -H "Authorization: Bearer $TOKEN" -X PUT \
      -H "Content-Type: application/json" \
      -d '{
        "name" : "'"$ORG_NAME"'",
        "properties" : {
          "property" : [ {
            "name" : "features.hybrid.enabled",
            "value" : "true"
          }, {
            "name" : "features.mart.connect.enabled",
            "value" : "true"
          } ]
        }
      }' \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"
    

    אם הפלט מכיל את המאפיינים הבאים, סימן שהפעלתם את Apigee Connect בהצלחה:

          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          },
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          }
    

    הפלט אמור להיראות כך:

    {
      "name": "hybrid-example-2",
      "createdAt": "1594409699772",
      "lastModifiedAt": "1594776283697",
      "environments": [
        "example-env"
      ],
      "properties": {
        "property": [
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          },
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-central1",
      "runtimeType": "HYBRID",
      "subscriptionType": "TRIAL"
    }