מאמרי עזרה על asmcli

סקירה כללית

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

  • הקצאת ההרשאות הנדרשות לניהול זהויות והרשאות גישה (IAM) בפרויקטGoogle Cloud .
  • מפעילים את ממשקי Google API הנדרשים בפרויקט. Google Cloud
  • מגדירים תווית באשכול שמזהה את הרשת.
  • יוצרים חשבון שירות שמאפשר לרכיבי מישור הנתונים, כמו פרוקסי קובץ עזר חיצוני, לגשת בצורה מאובטחת לנתונים ולמשאבים של הפרויקט.
  • רושמים את האשכול ב-Fleet אם הוא עדיין לא רשום.

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

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

אם אתם חדשים ב-Cloud Service Mesh וב-Istio, דלגו אל פלטפורמות נתמכות. הקטע הבא נועד לעזור למשתמשים קיימים של Cloud Service Mesh לשדרג ל- 1.28.

מתבצע מעבר אל asmcli

התו asmcli מחליף את התווים istioctl install ו-install_asm. אמנם עדיין אפשר להשתמש בכלי מדור קודם ב-Cloud Service Mesh 1.11, אבל אנחנו מוציאים אותם משימוש ולא נתמוך בהם יותר ב-Cloud Service Mesh 1.12 ובגרסאות מתקדמות יותר. צריך לעדכן את הסקריפטים והכלים כדי להשתמש ב-asmcli.

כל האשכולות צריכים להיות רשומים ב-Fleet. פרטים נוספים מופיעים במאמר בנושא דרישות לצי רכבים.

מעבר מ-install_asm

אם אתם מכירים את install_asm, ‏ asmcli דומה לו אבל עם ההבדלים הבאים:

  • משתמשים ב-asmcli install להתקנות ולשדרוגים חדשים. אין אפשרות --mode כמו ב-install_asm. כשמריצים את הפקודה asmcli install, היא בודקת אם יש מישור בקרה קיים באשכול. אם אין מישור בקרה קיים, asmcli מתקין את Cloud Service Mesh. אם לאשכול יש מישור בקרה קיים (מישור בקרה של Cloud Service Mesh או מישור בקרה של Istio בקוד פתוח):

  • רוב asmcli האפשרויות והדגלים מתנהגים כמו אלה של install_asm.

מעבר מ-istioctl install

אם אתם מכירים את istioctl install, ואם בדרך כלל אתם מעבירים קובץ YAML של IstioOperator באמצעות ארגומנט שורת הפקודה -f כדי להגדיר את מישור הבקרה, אתם יכולים להעביר את הקובץ אל asmcli באמצעות האפשרות --custom_overlay. במאמרי העזרה של Cloud Service Mesh, אנחנו מתייחסים לקבצים האלה כקבצים להוספה.

פלטפורמות נתמכות

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

עם זאת, לא כל התכונות זמינות בפלטפורמות מחוץ ל- Google Cloud. פרטים נוספים זמינים במאמר בנושא תכונות נתמכות של מישור הבקרה בתוך האשכול.

asmcli reference

בקטע הזה מתוארים הארגומנטים שזמינים ל-asmcli.

אפשרויות

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

GKE בלבד

-p|--project_id CLUSTER_PROJECT_ID
מזהה הפרויקט שבו נוצר האשכול.
-n|--cluster_name CLUSTER_NAME
השם של האשכול.
-l|--cluster_location CLUSTER_LOCATION
האזור (במקרה של אשכולות אזוריים) או התחום (במקרה של אשכולות של תחום יחיד) שבו האשכול נוצר.

כל הפלטפורמות

--kubeconfig KUBECONFIG_FILE הנתיב המלא אל קובץ ה-kubeconfig. משתנה הסביבה $PWD לא פועל כאן.

--ctx|--context KUBE_CONTEXT ההקשר של kubeconfig שבו רוצים להשתמש. אם לא מציינים את ההקשר, asmcli משתמש בהקשר שמוגדר כברירת מחדל.

-c|--ca {mesh_ca|gcp_cas|citadel}

רשות האישורים (CA) שמשמשת לניהול אישורי TLS דו-כיווני. מציינים mesh_ca כדי להשתמש ברשות האישורים של Cloud Service Mesh (רשות האישורים של Cloud Service Mesh), gcp_cas כדי להשתמש ב-Certificate Authority Service או citadel כדי להשתמש ב-Istio CA. ‫Managed Cloud Service Mesh לא תומך ב-Istio CA. מידע נוסף זמין במאמרים הבאים:

--channel CLOUD_SERVICE_MESH_CHANNEL

משתמשים ב---channel עם ערוץ הפצה ספציפי של Cloud Service Mesh כדי להקצות את הגרסה של מישור הבקרה שמשויכת לערוץ ההפצה הזה. לדוגמה, --channel rapid,‏ --channel regular ו---channel stable. הדגל הזה נדרש כשמגדירים תכונות מסוימות של Cloud Service Mesh באשכולות GKE Autopilot.

האפשרות --channel לא נתמכת יותר ב-Managed Cloud Service Mesh, כמו שצוין בהערות מוצר של CSM. ערוץ ההפצה נקבע על סמך ערוץ ההפצה של אשכול GKE. מידע נוסף זמין במאמר בנושא ערוצי הפצה של Managed Cloud Service Mesh.

--co|--custom_overlay OVERLAY_FILE
: משתמשים בפקודה --custom_overly עם השם של קובץ YAML (שנקרא קובץ שכבת-על) שמכיל את המשאב המותאם אישית IstioOperator כדי להגדיר את מישור הבקרה בתוך האשכול. אתם מציינים קובץ שכבת-על כדי להפעיל תכונה שלא מופעלת כברירת מחדל. ‫Managed Cloud Service Mesh לא תומך ב-IstioOperator API, ולכן אי אפשר להשתמש ב-IstioOperator כדי להגדיר את מישור הבקרה המנוהל.--custom_overlayasmcli צריך להיות מסוגל לאתר את קובץ שכבת העל, ולכן הוא צריך להיות באותה ספרייה כמו asmcli, או שאפשר לציין נתיב יחסי. כדי להוסיף כמה קבצים, מציינים את --co|--custom_overlay ואת שם הקובץ, למשל: --co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml
--hub-registration-extra-flags HUB_REGISTRATION_EXTRA_FLAGS
אם משתמשים באשכולות Amazon EKS מצורפים, משתמשים ב---hub-registration-extra-flags כדי לרשום את האשכול ב-Fleet אם הוא עדיין לא רשום.
-k|--key_file FILE_PATH
קובץ המפתח של חשבון השירות. אם אתם לא משתמשים בחשבון שירות, אל תכללו את האפשרות הזו.
--network_id NETWORK_ID
Use --network_id to set the topology.istio.io/network label applied to the istio-system namespace. ב-GKE, --network_id ברירת המחדל היא שם הרשת של האשכול. בסביבות אחרות, נעשה שימוש ב-default.
-o|--option OVERLAY_FILE

השם של קובץ השכבה (בלי הסיומת .yaml) שמוורדפרס מוריד ממאגר anthos-service-mesh כדי להפעיל תכונה אופציונלית.asmcli כדי להשתמש ב---option, צריך חיבור לאינטרנט. האפשרויות --option ו---custom_overlay דומות, אבל יש ביניהן הבדלים קלים:

  • משתמשים ב---custom_overlay כשצריך לשנות את ההגדרות בקובץ השכבה.

  • משתמשים ב---option כדי להפעיל תכונה שלא דורשת שינויים בקובץ השכבה, לדוגמה, כדי להגדיר מדיניות ביקורת לשירותים.

כדי להוסיף כמה קבצים, מציינים את -o|--option ואת שם הקובץ, למשל: -o option_file1 -o option_file2 -o option_file3

-D|--output_dir DIR_PATH

אם לא מציינים ספרייה, asmcli יוצר ספרייה זמנית שאליה הוא מוריד את הקבצים וההגדרות שנדרשים להתקנת Cloud Service Mesh. אפשר לציין את הדגל --output-dir כדי להגדיר נתיב יחסי לספרייה שבה רוצים להשתמש במקום זאת. בסיום התהליך, הספרייה שצוינה מכילה את ספריות המשנה asm ו-istio-1.28.2-asm.4. הספרייה asm מכילה את ההגדרות להתקנה. הספרייה istio-1.28.2-asm.4 מכילה את התוכן שחולץ מקובץ ההתקנה, שמכיל את istioctl, דוגמאות ומניפסטים. אם מציינים את --output-dir והספרייה כבר מכילה את הקבצים הנדרשים, asmcli משתמש בקבצים האלה במקום להוריד אותם שוב.

--platform PLATFORM {gcp|multicloud}

הפלטפורמה או הספק של אשכול Kubernetes. ברירת המחדל היא gcp (באשכולות GKE). לשימוש בכל הפלטפורמות האחרות, multicloud.

-r|--revision_name REVISION NAME

תווית של עדכון היא צמד מפתח/ערך שמוגדר במישור הבקרה. מפתח התווית של הגרסה הוא תמיד istio.io/rev. כברירת מחדל, asmcli מגדיר את הערך של תווית הגרסה על סמך הגרסה של Cloud Service Mesh, לדוגמה: asm-1282-4. אפשר לכלול את האפשרות הזו אם רוצים לבטל את ערך ברירת המחדל ולציין ערך משלכם. הארגומנט REVISION NAME חייב להיות תווית DNS-1035. כלומר, השם צריך:

  • לכלול עד 63 תווים
  • להכיל רק תווים אלפאנומריים באותיות קטנות או את התו '-'
  • להתחיל בתו אלפביתי
  • להסתיים בתו אלפאנומרי

הביטוי הרגולרי שמשמש לאימות הוא: '[a-z]([-a-z0-9]*[a-z0-9])?'

-s|--service_account ACCOUNT
השם של חשבון שירות שמשמש להתקנה של Cloud Service Mesh. אם לא מציינים חשבון, נעשה שימוש בחשבון המשתמש הפעיל בהגדרות הנוכחיות של gcloud. אם אתם צריכים לשנות את חשבון המשתמש הפעיל, מריצים את הפקודה gcloud auth login.

אפשרויות לאישור מותאם אישית של Istio CA

אם ציינתם --ca citadel ואתם משתמשים ב-CA מותאם אישית, צריך לכלול את האפשרויות הבאות:

  • --ca_cert FILE_PATH: אישור הביניים
  • --ca_key FILE_PATH: המפתח של אישור הביניים
  • --root_cert FILE_PATH: אישור הבסיס
  • --cert_chain FILE_PATH: שרשרת האישורים

מידע נוסף זמין במאמר בנושא הוספת אישורי CA קיימים.

מתגי הפעלה

הדגלים שמתחילים ב---enable מאפשרים ל-asmcli להפעיל את ממשקי ה-API הנדרשים של Google, להגדיר הרשאות נדרשות לניהול זהויות והרשאות גישה (IAM) ולעדכן את האשכול. אם תרצו, תוכלו לעדכן את הפרויקט ואת האשכול בעצמכם לפני שתפעילו את asmcli. כל ההגדרות של ההפעלה לא תואמות ל-asmcli validate. אם מציינים דגל הפעלה כשמריצים את הפקודה asmcli validate, הפקודה מסתיימת עם שגיאה.

-e|--enable_all
התרת asmcli לבצע את כל הפעולות הנפרדות של הפעלה שמתוארות בהמשך.
--enable_cluster_roles
ההרשאה מאפשרת ל-asmcli לנסות לקשר את המשתמש או את חשבון השירות שמריץ את asmcli לתפקיד cluster-admin באשכול. Google Cloud ‫asmcli קובע את חשבון המשתמש מתוך הפקודה gcloud config get core/account. אם מריצים את asmcli באופן מקומי עם חשבון משתמש, צריך להריץ את הפקודה gcloud auth login לפני שמריצים את asmcli. אם אתם צריכים לשנות את חשבון המשתמש, מריצים את הפקודה gcloud config set core/account GCP_EMAIL_ADDRESS, כאשר GCP_EMAIL_ADDRESS הוא החשבון שבו אתם משתמשים כדי להיכנס ל- Google Cloud.
--enable_cluster_labels
אני מאשר/ת ל-asmcli להגדיר תוויות נדרשות לאשכול.
--enable_gcp_components

מתן אישור ל-asmcli להפעיל את הרכיבים ושירותי Google Cloud הניהול הנדרשים הבאים:

  • Workload Identity, שמאפשר לאפליקציות GKE לגשת בבטחה לשירותי Google Cloud.

  • Cloud Monitoring ו-Cloud Logging ב-GKE.

  • הפעלת התכונה Cloud Service Mesh בפרויקט של הצי. נדרש מ-asmcli 1.25 ואילך כדי להקצות את Managed Canonical Service Controller.

--enable_gcp_apis

מאשרים ל-asmcli להפעיל את כל ממשקי ה-API הנדרשים של Google.

--enable_gcp_iam_roles

מאשרים ל-asmcli להגדיר את הרשאות ה-IAM הנדרשות.

--enable_meshconfig_init

מאפשרים לסקריפט לאתחל את נקודת הקצה meshconfig בשמכם. משתמע מ---enable_gcp_components ומ---managed.

--enable_namespace_creation

האם לאפשר ל-asmcli ליצור את מרחב השמות הבסיסי istio-system?

--enable_registration

מתן הרשאה ל-asmcli לרשום את האשכול בפרויקט שבו האשכול נמצא. אם לא כוללים את הדגל הזה, צריך לפעול לפי השלבים במאמר בנושא רישום אשכול כדי לרשום את האשכול באופן ידני. שימו לב: בניגוד לדגלי ההפעלה האחרים, --enable_registration נכלל ב---enable_all רק כשמציינים אפשרות (כמו --option hub-meshca) שמחייבת רישום של האשכול. אחרת, צריך לציין את הדגל הזה בנפרד.

דיווחים אחרים

--dry_run
הדפסת פקודות, אבל לא הפעלתן.
--fleet_id
רישום אשכול ל-Fleet באמצעות מזהה פרויקט המארח של ה-Fleet. הדגל הזה נדרש עבור אשכולות שאינםGoogle Cloud . אם לא מציינים את מזהה הפרויקט עבור אשכולותGoogle Cloud , ברירת המחדל היא מזהה הפרויקט של האשכול. אפשר להריץ את asmcli install יחד עם --fleet_id לפני ההתקנה, או כחלק מההתקנה על ידי העברת הדגלים --enable-registration ו---fleet-id. אי אפשר לשנות את ההגדרה הזו אחרי שמגדירים אותה.
--managed
הוצא משימוש. הקצאת מישור בקרה מנוהל מרחוק במקום התקנה בתוך האשכול.
--offline
מבצעים התקנה אופליין באמצעות החבילה שהורדה מראש בספריית הפלט. אם לא מציינים את הספרייה או שהיא לא מכילה את הקבצים הנדרשים, הסקריפט ייצא עם שגיאה.
--only_enable
מבצע את השלבים שצוינו כדי להגדיר את המשתמש או האשכול הנוכחי, אבל לא מתקין שום דבר.
--only_validate
הפעלת אימות אבל לא עדכון של הפרויקט או האשכול ולא התקנה של Cloud Service Mesh. הדגל הזה לא תואם לדגלי ההפעלה. ‫asmcli מסתיים עם שגיאה אם מציינים את --only_validate עם דגל הפעלה כלשהו.
--print_config
במקום להתקין את Cloud Service Mesh, מדפיסים את כל קובץ ה-YAML שעבר קומפילציה לפלט רגיל (stdout). כל שאר הפלט נכתב לשגיאה רגילה (stderr), גם אם בדרך כלל הוא היה נכתב ל-stdout. asmcli מדלג על כל תהליכי האימות וההגדרה כשמציינים את הדגל הזה.
--disable_canonical_service
הוצא משימוש. ה-Canonical Service Controller המנוהל תמיד מוקצה.
-h|--help
Show a help message describing the options and flags and exit.
--use_managed_cni
משתמשים ב-CNI מנוהל. אם לא מעבירים את הדגל הזה, asmcli יחיל את מניפסט ה-CNI הסטטי.
--use_vpcsc
אם בארגון שלכם נאכף VPC Service Controls בפרויקט, אתם צריכים להגדיר את Cloud Service Mesh המנוהל באמצעות הדגל --use_vpcsc. אחרת, ההתקנה תיכשל בבדיקות של אמצעי בקרת האבטחה.
-v|--verbose
במהלך ההרצה של asmcli, הפקודה הבאה שתורץ מודפסת. עם הדגל --verbose, הפקודה asmcli מודפסת גם אחרי ההרצה.
--version
מדפיסים את הגרסה של asmcli ויוצאים. אם אין לכם את הגרסה העדכנית ביותר, אתם יכולים להוריד את הגרסה העדכנית ביותר של asmcli_1.28.