הגדרה עצמאית של הפרויקט והאשכול

כשמתקינים את Cloud Service Mesh באמצעות asmcli, אפשר להגדיר את הפרויקט ואת האשכול אם כוללים את הדגל --enable_all או את דגלי ההפעלה המפורטים יותר. אם אתם מעדיפים לבצע את ההגדרה בעצמכם במקום ש-asmcli יבצע את השינויים, אתם יכולים לפעול לפי השלבים שבדף הזה.

אם כבר התקנתם גרסה קודמת של Cloud Service Mesh, אתם לא צריכים לבצע שינויים בפרויקט או באשכול לפני שמשתמשים ב-asmcli כדי לשדרג לגרסה העדכנית של Cloud Service Mesh.

כברירת מחדל, asmcli לא מתקין את istio-ingressgateway. מומלץ לפרוס ולנהל את רמת הבקרה ואת השערים בנפרד. ‫Cloud Service Mesh תומך בהזרקה אוטומטית לפריסות של שערים, מה שמקל על השדרוגים של Cloud Service Mesh. אחרי שמשדרגים את Cloud Service Mesh, מפעילים מחדש את השערים בדיוק כמו את השירותים, כדי שההגדרה החדשה של מישור הבקרה תיכנס לתוקף. מידע נוסף זמין במאמר התקנה ושדרוג של שערים.

לפני שמתחילים

הגדרת הפרויקט

  1. מקבלים את מזהה הפרויקט שבו נוצר האשכול.

    gcloud

    מריצים את הפקודה הבאה:

    gcloud projects list
    

    המסוף

    1. נכנסים לדף Dashboard במסוףGoogle Cloud .

      כניסה לדף Dashboard

    2. לוחצים על הרשימה הנפתחת בחלק העליון של הדף. בחלון בחירה מתוך שמופיע, בוחרים את הפרויקט.

      מזהה הפרויקט מוצג בכרטיס Project info בלוח הבקרה של הפרויקט.

  2. יוצרים משתנה סביבה למאגר עומסי העבודה באמצעות מזהה הפרויקט:

    export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
    
  3. מגדירים את התפקידים הנדרשים בניהול הזהויות והרשאות הגישה (IAM). אם אתם בעלי הפרויקט, יש לכם את כל ההרשאות הנדרשות להשלמת ההתקנה. אם אינכם בעלי פרויקט, עליכם לבקש ממישהו שהוא בעל פרויקט להקצות לכם את תפקידי ה-IAM הספציפיים הבאים. בפקודה הבאה, מחליפים את PROJECT_ID במזהה הפרויקט מהשלב הקודם ואת GCP_EMAIL_ADDRESS בחשבון שבו משתמשים כדי להיכנס אל Google Cloud.

    ROLES=(
    'roles/servicemanagement.admin' \
    'roles/serviceusage.serviceUsageAdmin' \
    'roles/meshconfig.admin' \
    'roles/compute.admin' \
    'roles/container.admin' \
    'roles/resourcemanager.projectIamAdmin' \
    'roles/iam.serviceAccountAdmin' \
    'roles/iam.serviceAccountKeyAdmin' \
    'roles/gkehub.admin')
    for role in "${ROLES[@]}"
    do
      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "user:GCP_EMAIL_ADDRESS" \
        --role="$role"
    done
    

    אם כוללים את הדגל --enable_all או --enable_gcp_iam_roles כשמריצים את הפקודה asmcli, התפקידים הנדרשים ב-IAM מוגדרים באופן אוטומטי.

  4. מפעילים את ממשקי Google API הנדרשים:

    gcloud services enable \
        --project=PROJECT_ID \
        mesh.googleapis.com
    

    בנוסף ל-mesh.googleapis.com, הפקודה הזו מפעילה גם את ממשקי ה-API הבאים:

    API מטרה אפשר להשבית
    meshconfig.googleapis.com ‫Cloud Service Mesh משתמש ב-Mesh Configuration API כדי להעביר נתוני הגדרה מהרשת שלכם אל Google Cloud. בנוסף, הפעלת Mesh Configuration API מאפשרת לכם לגשת לדפים של Cloud Service Mesh במסוף Google Cloud ולהשתמש ברשות האישורים של Cloud Service Mesh. לא
    meshca.googleapis.com קשור לרשות האישורים של Cloud Service Mesh שמשמשת את Cloud Service Mesh מנוהל. לא
    container.googleapis.com נדרש ליצירת אשכולות Google Kubernetes Engine‏ (GKE). לא
    gkehub.googleapis.com נדרש כדי לנהל את הרשת כצי. לא
    monitoring.googleapis.com נדרש כדי ללכוד טלמטריה עבור עומסי עבודה של רשתות Mesh. לא
    stackdriver.googleapis.com נדרש כדי להשתמש בממשק המשתמש של השירותים. לא
    opsconfigmonitoring.googleapis.com נדרש כדי להשתמש בממשק המשתמש של שירותי אשכולותGoogle Cloud . לא
    connectgateway.googleapis.com נדרשת כדי שמטוס הבקרה המנוהל של Cloud Service Mesh יוכל לגשת לעומסי עבודה של רשתות. כן*
    trafficdirector.googleapis.com מאפשרת מישור בקרה מנוהל עם זמינות גבוהה וניתן להתאמה לעומס. כן*
    networkservices.googleapis.com מאפשרת מישור בקרה מנוהל עם זמינות גבוהה וניתן להתאמה לעומס. כן*
    networksecurity.googleapis.com מאפשרת מישור בקרה מנוהל עם זמינות גבוהה וניתן להתאמה לעומס. כן*

    הפעלת ממשקי ה-API עשויה להימשך דקה או יותר. אחרי הפעלת ממשקי ה-API, הפלט אמור להיראות כך:

    Operation "operations/acf.601db672-88e6-4f98-8ceb-aa3b5725533c" finished
    successfully.
    

    אם כוללים את הדגל --enable_all או --enable_apis כשמריצים את הפקודה asmcli, ממשקי ה-API הנדרשים מופעלים באופן אוטומטי.

הגדרת האשכול

אם כוללים את הדגל --enable_all או אחד מדגלי ההפעלה המפורטים יותר, המערכת asmcli מגדירה את האשכול בשבילכם.

  1. רושמים את האשכול ב-Fleet.

  2. מאתחלים את הפרויקט כדי להכין אותו להתקנה. בין היתר, הפקודה הזו יוצרת חשבון שירות כדי לאפשר לרכיבי מישור הנתונים, כמו פרוקסי קובץ עזר חיצוני, לגשת באופן מאובטח לנתונים ולמשאבים של הפרויקט. בפקודה הבאה, מחליפים את FLEET_PROJECT_ID בפרויקט המארח של הצי:

    curl --request POST  \
     --header "Authorization: Bearer $(gcloud auth print-access-token)" \
     --header "Content-Type: application/json" \
     --data '{"workloadIdentityPools":["FLEET_PROJECT_ID.hub.id.goog","FLEET_PROJECT_ID.svc.id.goog","PROJECT_ID.svc.id.goog"]}' \
     "https://meshconfig.googleapis.com/v1alpha1/projects/PROJECT_ID:initialize"
    

    הפקודה מגיבה עם סוגריים מסולסלים ריקים: {}

  3. ב-GKE באשכולות Google Cloud , מגדירים את אזור ברירת המחדל או האזור ב-Google Cloud CLI. אם לא מגדירים כאן את ברירת המחדל, צריך לציין את האפשרות --zone או --region בפקודות gcloud container clusters בדף הזה.

    • אם יש לכם אשכול עם אזור אחד, צריך להגדיר את אזור ברירת המחדל:

      gcloud config set compute/zone CLUSTER_LOCATION
      
    • אם יש לכם אשכול אזורי, צריך להגדיר את האזור שמוגדר כברירת מחדל:

      gcloud config set compute/region CLUSTER_LOCATION
      
  4. באשכולות GKE on Google Cloud , מפעילים את Workload Identity:

    gcloud container clusters update CLUSTER_NAME \
        --project=PROJECT_ID \
        --workload-pool=${WORKLOAD_POOL}
    

    ההפעלה של Workload Identity יכולה להימשך בין 10 ל-15 דקות.

  5. באשכולות GKE, מפעילים את Cloud Monitoring ו-Cloud Logging ב-GKE: Google Cloud

    gcloud container clusters update CLUSTER_NAME \
        --project=PROJECT_ID \
        --enable-stackdriver-kubernetes
    

הפרויקט והאשכול מוכנים עכשיו להתקנה חדשה באמצעות asmcli.

המאמרים הבאים