הגדרה עצמית של הפרויקט ואשכול GKE
כשמתקינים את Cloud Service Mesh באמצעות asmcli, אפשר להגדיר את הפרויקט ואת אשכול GKE on Google Cloud אם כוללים את הדגל --enable_all או את דגלי ההפעלה המפורטים יותר.
אם אתם מעדיפים לבצע את ההגדרה בעצמכם במקום ש-asmcli יבצע את השינויים, אתם יכולים לפעול לפי השלבים שבדף הזה.
אם כבר מותקנת אצלכם גרסה קודמת של Cloud Service Mesh, לא צריך לבצע שינויים בפרויקט או באשכול לפני שמשתמשים ב-asmcli כדי לשדרג לגרסה העדכנית של Cloud Service Mesh.
כברירת מחדל, asmcli לא מתקין את istio-ingressgateway. מומלץ לפרוס ולנהל את רמת הבקרה ואת השערים בנפרד.
Cloud Service Mesh תומך בהוספה אוטומטית לפריסות של שערים, מה שמקל על שדרוגים של Cloud Service Mesh. אחרי שמשדרגים את Cloud Service Mesh, מפעילים מחדש את השערים בדיוק כמו את השירותים, כדי שההגדרה החדשה של מישור הבקרה תיכנס לתוקף. מידע נוסף זמין במאמר התקנה ושדרוג של שערים.
לפני שמתחילים
הגדרת הפרויקט
מקבלים את מזהה הפרויקט ואת מספר הפרויקט שבו נוצר האשכול.
gcloud
מריצים את הפקודה הבאה:
gcloud projects listהמסוף
נכנסים לדף Dashboard במסוףGoogle Cloud .
לוחצים על הרשימה הנפתחת בחלק העליון של הדף. בחלון בחירה מתוך שמופיע, בוחרים את הפרויקט.
מזהה הפרויקט ומספר הפרויקט מוצגים בכרטיס Project info בלוח הבקרה של הפרויקט.
יוצרים את משתני הסביבה הבאים:
מגדירים את מאגר כוח העבודה באמצעות מזהה הפרויקט:
export WORKLOAD_POOL=PROJECT_ID.svc.id.googמגדירים את מזהה הרשת באמצעות מספר הפרויקט:
export MESH_ID="proj-PROJECT_NUMBER"
מגדירים את התפקידים הנדרשים בניהול הזהויות והרשאות הגישה (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 מוגדרים באופן אוטומטי.מפעילים את ממשקי Google API הנדרשים:
gcloud services enable \ --project=PROJECT_ID \ mesh.googleapis.comבנוסף ל-
mesh.googleapis.com, הפקודה הזו מפעילה גם את ממשקי ה-API הבאים:API מטרה אפשר להשבית meshconfig.googleapis.comCloud 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 מגדירה את האשכול בשבילכם.
מגדירים את אזור ברירת המחדל ב-Google Cloud CLI. אם לא מגדירים כאן את ברירת המחדל, צריך לציין את האפשרות
--zoneאו--regionבפקודותgcloud container clustersבדף הזה.אם יש לכם אשכול עם אזור אחד, צריך להגדיר את אזור ברירת המחדל:
gcloud config set compute/zone CLUSTER_LOCATIONאם יש לכם אשכול אזורי, צריך להגדיר את האזור שמוגדר כברירת מחדל:
gcloud config set compute/region CLUSTER_LOCATION
מגדירים את התווית
mesh_idlabel באשכול. אם לאשכול שלכם יש תוויות קיימות שאתם רוצים לשמור, אתם צריכים לכלול את התוויות האלה כשאתם מוסיפים את התוויתmesh_id.כדי לבדוק אם יש תוויות קיימות באשכול:
gcloud container clusters describe CLUSTER_NAME \ --project PROJECT_IDמחפשים את השדה
resourceLabelsבפלט. כל תווית מאוחסנת בשורה נפרדת בשדהresourceLabels, לדוגמה:resourceLabels: csm: '' env: dev release: stable
כדי שיהיה לכם נוח, אתם יכולים להוסיף את התוויות למשתנה סביבתי. בדוגמה הבאה, מחליפים את
YOUR_EXISTING_LABELSברשימה מופרדת בפסיקים של התוויות הקיימות באשכול בפורמטKEY=VALUE, לדוגמה:env=dev,release=stableexport EXISTING_LABELS="YOUR_EXISTING_LABELS"מגדירים את התווית
mesh_id:אם באשכול יש תוויות קיימות שרוצים לשמור, צריך לעדכן את האשכול באמצעות
mesh_idוהתוויות הקיימות:gcloud container clusters update CLUSTER_NAME \ --project PROJECT_ID \ --update-labels=mesh_id=${MESH_ID},${EXISTING_LABELS}אם באשכול אין תוויות קיימות, מעדכנים את האשכול רק עם התווית
mesh_id:gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --update-labels=mesh_id=${MESH_ID}
הפעלה של Workload Identity:
gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --workload-pool=${WORKLOAD_POOL}ההפעלה של Workload Identity יכולה להימשך בין 10 ל-15 דקות.
מאתחלים את הפרויקט כדי להכין אותו להתקנה. בין היתר, הפקודה הזו יוצרת חשבון שירות כדי לאפשר לרכיבי מישור הנתונים, כמו פרוקסי קובץ עזר חיצוני, לגשת באופן מאובטח לנתונים ולמשאבים של הפרויקט. בפקודה הבאה, מחליפים את
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"הפקודה מגיבה עם סוגריים מסולסלים ריקים:
{}הפעלה של Cloud Monitoring ו-Cloud Logging ב-GKE:
gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --enable-stackdriver-kubernetes
הפרויקט והאשכול מוכנים עכשיו להתקנה חדשה באמצעות asmcli.