הפעלת תכונות אופציונליות במישור בקרה באשכול
בדף הזה מוסבר איך להפעיל תכונות אופציונליות ב-Cloud Service Mesh עם מישור בקרה באשכול.
כשמתקינים את Cloud Service Mesh באשכול, התכונות שמופעלות כברירת מחדל משתנות בהתאם לפלטפורמה.
כדי לשנות את הגדרת ברירת המחדל ולהפעיל תכונה אופציונלית, אתם יכולים לכלול קובץ שכבת-על כשאתם מתקינים (או משדרגים) את Cloud Service Mesh. קובץ שכבת-על הוא קובץ YAML שמכיל משאב בהתאמה אישית (CR) מסוג IstioOperator, שמשמש להגדרת מישור הבקרה. ציינו תכונה אחת לכל קובץ שכבת-על. אפשר להוסיף עוד שכבות, וכל קובץ שכבה מבטל את ההגדרות בשכבות הקודמות.
מידע על קובצי שכבת-העל
קובצי שכבת-העל שבדף הזה נמצאים בחבילה anthos-service-mesh ב-GitHub. הקבצים האלה מכילים התאמות אישיות נפוצות להגדרות ברירת המחדל. אתם יכולים להשתמש בקבצים האלה כמו שהם, או לבצע בהם שינויים נוספים לפי הצורך.
כשמתקינים את Cloud Service Mesh באמצעות הסקריפט asmcli, אפשר לציין קובץ שכבת-על אחד או יותר באמצעות האפשרויות --option או --custom_overlay. אם אתם לא צריכים לבצע שינויים בקבצים במאגר anthos-service-mesh, אתם יכולים להשתמש ב---option והסקריפט יאחזר בשבילכם את הקובץ מ-GitHub. אחרת, אפשר לבצע שינויים בקובץ שכבת-העל, ואז להשתמש באפשרות --custom_overlay כדי להעביר אותו אל asmcli.
| אל תכללו כמה בקשות לשינוי בקובץ שכבת-על אחד | יצירת קובצי שכבת-על נפרדים לכל בקשת שינוי |
|---|---|
![]() |
![]() |
איך מפעילים תכונות אופציונליות
הדוגמאות הבאות פשוטות יותר, ומוצג בהן רק השימוש בשכבות-על בהתאמה אישית כדי להפעיל תכונות אופציונליות. מחליפים את OTHER_FLAGS בדגלי ההתקנה הנדרשים.
הפקודה asmcli install מספקת שתי דרכים להפעיל תכונה אופציונלית. השיטה שבה משתמשים תלויה בשאלה אם צריך לבצע שינויים בקובץ השכבה.
משתמשים ב-
--optionכשלא צריך לבצע שינויים בקובץ שכבת-העל. כשמשתמשים ב---option,asmcliמאחזר בשבילכם את הקובץ מהמאגר ב-GitHub, ולכן צריך חיבור לאינטרנט../asmcli install \ OTHER_FLAGS \ --option OPTION_NAMEמחליפים את
OPTION_NAMEבאפשרות שרוצים להפעיל. חשוב להשמיט את הסיומת .yaml ולכלול רק את שם קובץ שכבת-העל, למשלiap-operatorו-attached-cluster. רשימת האפשרויות מופיעה בחבילהanthos-service-mesh.משתמשים ב-
--custom_overlayכשצריך להתאים אישית את קובץ שכבת-העל../asmcli install \ OTHER_FLAGS \ --custom_overlay PATH_TO_FILEמחליפים את
PATH_TO_FILEבנתיב לקובץ שכבת-העל שבו רוצים להשתמש.
YAML לתכונות אופציונליות
בקטעים הבאים מופיע קוד ה-YAML להפעלת תכונות אופציונליות ונתמכות.
מצב mTLS STRICT
ההגדרה global.mtls.enabled הוסרה מה-CR של IstioOperator כדי למנוע בעיות בשדרוגים ולאפשר התקנה גמישה יותר.
כדי להפעיל mTLS ב-STRICT, צריך להגדיר מדיניות אימות עמיתים.
תמונת פרוקסי ללא הפצה
Istio מספק קובצי אימג' של שרתי proxy שמבוססים על קובצי אימג' בסיסיים ללא הפצה.
ההגדרה הבאה מפעילה קובצי אימג' ללא הפצה לכל Cloud Service Mesh. כדי ששינוי של סוג התמונה ייכנס לתוקף, צריך להפעיל מחדש כל pod ולהזריק אותו מחדש.
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultConfig:
image:
imageType: distroless
התמונה ללא הפצה לא מכילה קבצים בינאריים מלבד ה-proxy. לכן אי אפשר exec מעטפת או להשתמש ב-curl, ב-ping או בכלי ניפוי באגים אחרים בתוך הקונטיינר.
אם מריצים פקודת curl, מופיעה השגיאה הבאה:
error: Internal error occurred: error executing command in container: failed to exec in container: failed to start exec "<container-id>"
OCI runtime exec failed: exec failed: unable to start container process: exec: "curl": executable file not found in $PATH: unknown
אם מריצים פקודת מעטפת, מופיעה השגיאה הבאה:
error: Internal error occurred: error executing command in container: failed to exec in container: failed to start exec "<container-id>"
OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "sh": executable file not found in $PATH: unknown
אם אתם צריכים גישה לכלים האלה לפודים ספציפיים, אתם יכולים לשנות את imageType באמצעות ההערה הבאה לפוד.
sidecar.istio.io/proxyImageType: debug
אחרי שמשנים את סוג קובץ האימג' של פריסה באמצעות ההערה, צריך להפעיל מחדש את הפריסה.
kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME
ברוב הסוגים של ניפוי באגים בשרת proxy, צריך להשתמש ב-istioctl proxy-cmd שלא דורש תמונת בסיס לניפוי באגים.
שימוש בשכבת-על מותאמת אישית לרישום מותאם אישית
אתם יכולים להשתמש בשכבת-על בהתאמה אישית למרשמים בהתאמה אישית, למשל אם אתם צריכים להתקין את Cloud Service Mesh מ-Container Registry בהתאמה אישית. לדוגמה:
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
hub: {private_registry_url}
ברשימה הבאה מופיעים קובצי האימג' של Cloud Service Mesh שצריך לשקף במרשם הקונטיינרים בהתאמה אישית:
- Install-cni –
gke.gcr.io/asm/install-cni:1.30.5-asm.11 - מישור נתונים מנוהל –
gke.gcr.io/asm/mdp:1.30.5-asm.11 - פיילוט –
gke.gcr.io/asm/pilot:1.30.5-asm.11 - Proxyv2 –
gke.gcr.io/asm/proxyv2:1.30.5-asm.11
הוספת קובצי אימג' למאגר פרטי
כדי להעביר תמונות של Cloud Service Mesh למאגר פרטי:
-
מורידים את קובצי האימג' של Cloud Service Mesh:
docker pull gke.gcr.io/asm/install-cni:1.30.5-asm.11 docker pull gke.gcr.io/asm/pilot:1.30.5-asm.11 docker pull gke.gcr.io/asm/proxyv2:1.30.5-asm.11
-
יוצרים משתנה לכתובת ה-URL של המאגר הפרטי:
מחליפים אתexport PRIVATE_REGISTRY_URL=PRIVATE_REGISTRY_URL
PRIVATE_REGISTRY_URLבכתובת ה-URL של המאגר הפרטי. -
מתייגים את קובצי האימג' עם כתובת ה-URL של המאגר הפרטי:
docker tag gke.gcr.io/asm/install-cni:1.30.5-asm.11 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/install-cni:1.30.5-asm.11 docker tag gke.gcr.io/asm/mdp:1.30.5-asm.11 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/pilot:1.30.5-asm.11 docker tag gke.gcr.io/asm/proxyv2:1.30.5-asm.11 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/proxyv2:1.30.5-asm.11 - דוחפים את התמונות המתויגות למרשם הפרטי:
docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/install-cni:1.30.5-asm.11 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/pilot:1.30.5-asm.11 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/proxyv2:1.30.5-asm.11 - (אופציונלי) אם אתם משתמשים בשירות קנוני, הוסיפו את קובצי האימג' של השירות הקנוני למאגר הפרטי שלכם.
- מורידים את קובצי האימג' של השירות הקנוני של Cloud Service Mesh:
docker pull gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1 docker pull gke.gcr.io/asm/canonical-service-controller:1.10.3-asm.16 - מתייגים את קובצי האימג' עם כתובת ה-URL של המאגר הפרטי:
docker tag gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1 \ ${PRIVATE_REGISTRY_URL}/gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1 docker tag gke.gcr.io/asm/canonical-service-controller:1.10.3-asm.16 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/canonical-service-controller:1.10.3-asm.16 - דוחפים את התמונות המתויגות למרשם הפרטי:
docker push ${PRIVATE_REGISTRY_URL}/gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/canonical-service-controller:1.10.3-asm.16
- מורידים את קובצי האימג' של השירות הקנוני של Cloud Service Mesh:
אם אתם יכולים לשלוף את התמונות המתויגות מהמרשם הפרטי, סימן שהתהליך הצליח.
הארכת משך הזמן של ניקוז החיבורים בסיום
כברירת מחדל, Envoy ימתין חמש שניות (5s) עד שהחיבורים הקיימים יסתיימו כש-pod מסתיים.
הערך של Pod terminationGracePeriodSeconds חייב להיות גדול מהערך של terminationDrainDuration.
מידע נוסף זמין במאמר אפשרויות רשת גלובליות.
---
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultConfig:
terminationDrainDuration: 30s
הפעלת יומני גישה
מידע נוסף זמין במאמר הפעלת רישום ביומן של הגישה ל-Envoy.
Cloud Trace
אפשר להשתמש ב-Cloud Trace בהתקנות של Cloud Service Mesh בפלטפורמות הבאות:
- GKE ב- Google Cloud
- אשכולות GKE Enterprise מקומיים, אם מתקינים אותם עם רשות האישורים של Cloud Service Mesh
מידע נוסף זמין במאמר גישה למעקבים.
תעבורת נתונים יוצאת דרך שערים לתעבורת נתונים יוצאת
מומלץ להתקין שער מוזרק, כמו שמתואר במאמר התקנה ושדרוג של שערים. הזרקה, או הזרקה אוטומטית, מתייחסת לשימוש בתגובות לפעולה מאתרי אינטרנט (webhooks) שמשתנות כדי לשנות את המפרטים של Pod בזמן היצירה. אתם משתמשים בהחדרה כדי להוסיף את הגדרת ה-Sidecar של שרת ה-Proxy של Envoy לשירותי ה-Mesh, או כדי להגדיר את שרת ה-Proxy של Envoy לשערים.
ממשק רשת קונטיינרים של Istio
הדרך שבה מפעילים את ממשק הרשת של קונטיינר (CNI) של Istio תלויה בסביבה שבה Cloud Service Mesh מותקן.
בוחרים את קובץ שכבת-העל שמתאים לפלטפורמה שלכם.
הפעלת CNI ב-GKE
הפעלת CNI מקומי
הפעלת יומני תנועה מחוץ ל-Google Cloud
כשמתקינים את Cloud Service Mesh עם רשות אישורים של Istio מחוץ ל- Google Cloud , המדדים מדווחים ל-Prometheus כברירת מחדל. כדי להשתמש במרכזי הבקרה של Cloud Service Mesh, אתם יכולים להשתמש באפשרות הזו כדי להפעיל דיווח על יומני תנועה במקום זאת, או גם Prometheus וגם Stackdriver.
רק Stackdriver
Stackdriver ו-Prometheus
הפעלת מאזן עומסים פנימי
כדי להגדיר מאזן עומסים פנימי ב-GKE, מומלץ להתקין שער מוזרק כמו שמתואר במאמר התקנה ושדרוג של שערים. כשמגדירים את שירות השער, צריך לכלול את ההערה: networking.gke.io/load-balancer-type: "Internal"
ניהול אישורים חיצוניים בשער הכניסה (ingress)
במאמר שערים מאובטחים מוסבר איך להפעיל ניהול אישורים חיצוני בשער הכניסה באמצעות Envoy SDS.

