מאמרי עזרה על 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מבצע שדרוג קנרי.אם התוויות של הגרסה של רמת הבקרה זהות,
asmcliמבצע שדרוג במקום.
רוב
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 לא תומך ב-IstioOperatorAPI, ולכן אי אפשר להשתמש ב-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_idto set thetopology.istio.io/networklabel applied to theistio-systemnamespace. ב-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 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.