התקנה של כלים תלויים ואימות של האשכול
בדף הזה מוסבר איך להכין את הסביבה ואת האשכול להתקנה של Cloud Service Mesh.
התקנת הכלים הנדרשים
אפשר להריץ את asmcli ב-Cloud Shell או במחשב המקומי שבו פועל Linux. כל הכלים הנדרשים מותקנים מראש ב-Cloud Shell.
אם אתם מריצים את asmcli באופן מקומי, ודאו שהכלים הבאים מותקנים אצלכם:
- Google Cloud CLI
- כלי שורת הפקודה הרגילים:
awk,curl,grep,sedו-tr gitkubectljq- (אופציונלי, כדי לבדוק את הקישוריות) netcat (
nc)
הגדרת gcloud
צריך לבצע את השלבים הבאים גם אם משתמשים ב-Cloud Shell.
כדי לאמת עם Google Cloud CLI:
gcloud auth login --project PROJECT_IDמעדכנים את הרכיבים:
gcloud components updateאם אתם מתקינים את Cloud Service Mesh באשכול GKE, צריך להגדיר את
kubectlכך שיצביע על האשכול.gcloud container clusters get-credentials CLUSTER_NAME \ --location CLUSTER_LOCATION \ --project PROJECT_ID
הורדה של asmcli
בקטע הזה מוסבר איך להוריד את asmcli.
מורידים את הגרסה שמתקינה את Cloud Service Mesh 1.28.2 לספריית העבודה הנוכחית:
curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_1.28 > asmcliהפלט אמור להיראות כך:
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 167k 100 167k 0 0 701k 0 --:--:-- --:--:-- --:--:-- 701kהופכים את הסקריפט לניתן להרצה:
chmod +x asmcli
הענקת הרשאות אדמין של אשכול
מוודאים שהגדרתם את ההקשר לאשכול המשתמשים:
kubectl config use-context CONTEXT
נותנים הרשאות אדמין באשכול לחשבון המשתמש (כתובת האימייל שלכם Google Cloud לכניסה). אתם צריכים את ההרשאות האלה כדי ליצור את הכללים הנדרשים של בקרת גישה מבוססת-תפקידים (RBAC) ל-Cloud Service Mesh:
kubectl create clusterrolebinding cluster-admin-binding \ --clusterrole=cluster-admin \ --user=USER_ACCOUNT
אימות הפרויקט והאשכול
אפשר להריץ את הפקודה asmcli validate כדי לוודא שהפרויקט והאשכול מוגדרים כמו שצריך להתקנת Cloud Service Mesh. באפשרות הזו, asmcli לא מבצע שינויים בפרויקט או באשכול, ולא מתקין את Cloud Service Mesh.
asmcli מאמת את הדברים הבאים:
בסביבה שלכם יש את הכלים הנדרשים.
האשכול עומד בדרישות המינימליות.
יש לכם את ההרשאות הנדרשות בפרויקט שצוין.
בפרויקט מופעלים כל ממשקי Google API הנדרשים.
כברירת מחדל, asmcli מוריד ומחלץ את קובץ ההתקנה ומוריד את חבילת ההגדרות asm מ-GitHub לספריית temp. לפני שיוצאים,
asmcli מוציא הודעה עם השם של ספריית הטמפ.
מומלץ לציין ספרייה להורדות באמצעות האפשרות --output_dir DIR_PATH. האפשרות --output_dir מאפשרת לכם להשתמש בקלות בכלי שורת הפקודה istioctl. (יכול להיות שתצטרכו istioctl כדי לפתור בעיות בהגדרות או להגדיר רשת מרובת אשכולות באשכולות פרטיים של GKE).
בנוסף, בספרייה asm/istio/options כלולים קובצי התצורה להפעלת תכונות אופציונליות באמצעות asmcli.
מריצים את הפקודה הבאה כדי לאמת את התצורה ולהוריד את קובץ ההתקנה ואת חבילת asm לספרייה OUTPUT_DIR.
GKE
./asmcli validate \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH
--project_id,--cluster_nameו---cluster_locationמציינים את מזהה הפרויקט שבו נמצא האשכול, את שם האשכול ואת האזור או האזור של האשכול.
--fleet_idמזהה הפרויקט של פרויקט המארח של הצי. asmcli validateבודקת שהאשכול רשום ב-Fleet שצוין.--output_dirכוללים את האפשרות הזו כדי לציין ספרייה שבהasmcliמוריד את חבילתasmומחלץ את קובץ ההתקנה, שמכיל אתistioctl, דוגמאות ומניפסטים. אחרת,asmcliמוריד את הקבצים לספרייהtmp. אפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.
מחוץ ל-Google Cloud
מריצים את הפקודה הבאה ב-asmcli validate בפלטפורמות הבאות: Google Distributed Cloud, GKE on AWS, Amazon EKS ו-Microsoft AKS.
מגדירים את ההקשר הנוכחי לאשכול המשתמשים:
kubectl config use-context CLUSTER_NAMEמריצים את הפקודה הבאה כדי לאמת את התצורה ולהוריד את קובץ ההתקנה ואת חבילת
asmלספרייהOUTPUT_DIR:./asmcli validate \ --kubeconfig KUBECONFIG_FILE \ --fleet_id FLEET_PROJECT_ID \ --output_dir DIR_PATH \ --platform multicloud--kubeconfigהנתיב אלkubeconfigאפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.
--fleet_idמזהה הפרויקט של פרויקט המארח של הצי. asmcli validateבודקת שהאשכול רשום ב-Fleet שצוין.--output_dirכוללים את האפשרות הזו כדי לציין ספרייה שבהasmcliמוריד את חבילתasmומחלץ את קובץ ההתקנה, שמכיל אתistioctl, דוגמאות ומניפסטים. אחרת,asmcliמוריד את הקבצים לספרייהtmp. אפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.--platform multicloudמציין שהפלטפורמה היא לא Google Cloud, למשל פלטפורמה מקומית או פלטפורמה מרובת עננים.
אם הפעולה בוצעה בהצלחה, asmcli מחזירה את הפלט הבא:
asmcli: Setting up necessary files... asmcli: Using asm_kubeconfig as the kubeconfig... asmcli: Checking installation tool dependencies... asmcli: Fetching/writing GCP credentials to kubeconfig file... asmcli: Verifying connectivity (10s)... asmcli: kubeconfig set to asm_kubeconfig asmcli: using context gke_example-project-12345_us-central1_cluster-2 asmcli: Getting account information... asmcli: Downloading ASM.. asmcli: Downloading ASM kpt package... fetching package "/asm" from "https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages" to "asm" asmcli: Checking required APIs... asmcli: Checking for project example-project-12345... asmcli: Reading labels for us-central1/cluster-2... asmcli: Checking for istio-system namespace... asmcli: Confirming node pool requirements for example-project-12345/us-central1/cluster-2... asmcli: Checking Istio installations... asmcli: [WARNING]: There is no way to validate that the meshconfig API has been initialized. asmcli: [WARNING]: This needs to happen once per GCP project. If the API has not been initialized asmcli: [WARNING]: for example-project-12345, please re-run this tool with the --enable_gcp_components asmcli: [WARNING]: flag. Otherwise, installation will succeed but Anthos Service Mesh asmcli: [WARNING]: will not function correctly. asmcli: Successfully validated all requirements to install ASM.
אם אחת מהבדיקות נכשלת, asmcli מציג הודעת שגיאה.
לדוגמה, אם לא כל ממשקי ה-API הנדרשים של Google מופעלים בפרויקט, תופיע השגיאה הבאה:
ERROR: One or more APIs are not enabled. Please enable them and retry, or run `asmcli` with the '--enable_gcp_apis' flag to allow `asmcli` to enable them on your behalf.
אם קיבלתם הודעת שגיאה שצריך להריץ את asmcli עם דגל הפעלה, יש לכם את האפשרויות הבאות:
כדי לבצע את ההתקנה בפועל, צריך לכלול את הדגל הספציפי מהודעת השגיאה או את הדגל
--enable_allכשמריצים אתasmcli.אם אתם מעדיפים, אתם יכולים לעדכן את הפרויקט ואת האשכול בעצמכם לפני שתריצו את הפקודה
asmcliכמו שמתואר במאמר הגדרה עצמית של הפרויקט ואשכול GKE.
שימו לב: asmcli validate לא מאפשר דגלי הפעלה כי הוא רק בודק שהפרויקט והאשכול מוכנים להתקנה.
בדיקת הדרישות להתקנה ולשדרוג של אשכול
לפני השדרוג, כדאי לוודא שההגדרה שלכם תואמת לגרסה החדשה של Cloud Service Mesh.
עוברים לספרייה שצוינה ב-
--output_dir.מריצים את הפקודה הבאה כדי לבדוק את דרישות ההתקנה והשדרוג של אשכול Kubernetes. חשוב לוודא שאתם משתמשים בגרסה של
istioctlשמופצת עם הגרסה החדשה של Cloud Service Mesh.istioctl experimental precheck