הפעלה של תכונות אופציונליות במישור בקרה בתוך אשכול
בדף הזה מוסבר איך להפעיל תכונות אופציונליות ב-Cloud Service Mesh עם מישור בקרה בתוך האשכול.
כשמתקינים את Cloud Service Mesh בתוך האשכול, התכונות שמופעלות כברירת מחדל משתנות בהתאם לפלטפורמה.
אפשר לשנות את הגדרות ברירת המחדל ולהפעיל תכונה אופציונלית על ידי הוספה של קובץ overlay כשמתקינים את 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.
| אל תכללו כמה CR בקובץ שכבת-על אחד | יצירת קובצי שכבת-על נפרדים לכל CR |
|---|---|
![]() |
![]() |
איך מפעילים תכונות אופציונליות
הדוגמאות הבאות הן פשוטות, והן מראות רק שימוש בשכבות-על בהתאמה אישית כדי להפעיל תכונות אופציונליות. מחליפים את 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 הוסרה מה-IstioOperator
CR כדי למנוע בעיות בשדרוגים וכדי לספק התקנה גמישה יותר.
כדי להפעיל STRICT mTLS, במקום זאת צריך להגדיר מדיניות אימות עמיתים.
תמונת proxy ללא הפצה
מומלץ להגביל את התוכן של זמן ריצה של קונטיינר רק לחבילות הנדרשות. הגישה הזו משפרת את האבטחה ואת יחס האות לרעש של סורקי חשיפות ופגיעויות נפוצות (CVE). Istio מספק תמונות של שרת proxy שמבוססות על תמונות בסיסיות ללא הפצה.
ההגדרה הבאה מאפשרת שימוש בתמונות distroless בכל Cloud Service Mesh. כדי שהשינוי בסוג התמונה ייכנס לתוקף, כל פוד צריך להפעיל מחדש ולהזריק מחדש.
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultConfig:
image:
imageType: distroless
תמונת ה-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
לרוב סוגי ניפוי הבאגים של פרוקסי, צריך להשתמש ב-istioctl proxy-cmd שלא דורש תמונת בסיס לניפוי באגים.
שימוש בשכבת-על מותאמת אישית עבור רישום מותאם אישית
אפשר להשתמש בשכבת-על בהתאמה אישית עבור מאגרי רישום בהתאמה אישית, למשל אם צריך להתקין את Cloud Service Mesh ממאגר רישום של קונטיינרים בהתאמה אישית. לדוגמה:
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
hub: {private_registry_url}
זו רשימה של תמונות ל-Cloud Service Mesh שצריך לשכפל למאגר קונטיינרים בהתאמה אישית:
- Install-cni –
gke.gcr.io/asm/install-cni:1.28.2-asm.4 - מישור נתונים מנוהל –
gke.gcr.io/asm/mdp:1.28.2-asm.4 - פיילוט –
gke.gcr.io/asm/pilot:1.28.2-asm.4 - Proxyv2 –
gke.gcr.io/asm/proxyv2:1.28.2-asm.4
הוספת תמונות למאגר פרטי
כדי להעלות תמונות של Cloud Service Mesh למאגר פרטי, צריך לבצע את השלבים הבאים.
-
שולפים את התמונות של Cloud Service Mesh:
docker pull gke.gcr.io/asm/install-cni:1.28.2-asm.4 docker pull gke.gcr.io/asm/mdp:1.28.2-asm.4 docker pull gke.gcr.io/asm/pilot:1.28.2-asm.4 docker pull gke.gcr.io/asm/proxyv2:1.28.2-asm.4
-
יוצרים משתנה לכתובת ה-URL של המאגר הפרטי:
מחליפים אתexport PRIVATE_REGISTRY_URL=PRIVATE_REGISTRY_URL
PRIVATE_REGISTRY_URLבכתובת ה-URL של הרישום הפרטי. -
מתייגים את התמונות באמצעות כתובת ה-URL של המאגר הפרטי:
docker tag gke.gcr.io/asm/install-cni:1.28.2-asm.4 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/install-cni:1.28.2-asm.4 docker tag gke.gcr.io/asm/mdp:1.28.2-asm.4 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/mdp:1.28.2-asm.4 docker tag gke.gcr.io/asm/pilot:1.28.2-asm.4 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/pilot:1.28.2-asm.4 docker tag gke.gcr.io/asm/proxyv2:1.28.2-asm.4 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/proxyv2:1.28.2-asm.4 - מעבירים את התמונות שתויגו למאגר הפרטי:
docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/install-cni:1.28.2-asm.4 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/mdp:1.28.2-asm.4 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/pilot:1.28.2-asm.4 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/proxyv2:1.28.2-asm.4 - (אופציונלי) אם אתם משתמשים בשירות קנוני, אתם צריכים להוסיף את תמונות השירות הקנוני למאגר הפרטי שלכם.
- שולפים את תמונות השירות הקנוניות של 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
מידע נוסף זמין במאמר בנושא גישה לנתוני מעקב.
תעבורת נתונים יוצאת (egress) דרך שערים ליציאת נתונים
מומלץ להתקין שער מוזרק כמו שמתואר במאמר התקנה ושדרוג של שערים. הזרקה, או הזרקה אוטומטית, מתייחסת לשימוש בווּבּהוּקים (webhook) משנים כדי לשנות את המפרטים של Pod בזמן היצירה. משתמשים בהזרקה כדי להוסיף את הגדרת ה-Sidecar של שרת ה-proxy של Envoy לשירותי ה-Mesh, או כדי להגדיר את שרת ה-proxy של Envoy לשערים.
ממשק רשת של קונטיינר Istio
הדרך להפעלת ממשק רשת הקונטיינרים (CNI) של Istio תלויה בסביבה שבה מותקן Cloud Service Mesh.
בוחרים את קובץ השכבה העליונה שמתאים לפלטפורמה שלכם.
הפעלת CNI ב-GKE
הפעלת CNI בפריסה מקומית
הפעלת יומני תנועה עבורGoogle Cloud
התקנה של Cloud Service Mesh עם Istio CA מחוץ ל- Google Cloud מדווחת על מדדים ל-Prometheus כברירת מחדל. אפשר להשתמש באפשרות הזו כדי להפעיל דיווח של יומני תנועה במקום זאת, או גם של Prometheus וגם של Stackdriver, כדי שתוכלו להשתמש בלוחות הבקרה של Cloud Service Mesh.
Stackdriver בלבד
Stackdriver ו-Prometheus
הפעלת מאזן עומסים פנימי
מומלץ להתקין שער מוזרק כמו שמתואר במאמר התקנה ושדרוג של שערים כדי להגדיר מאזן עומסים פנימי ב-GKE. כשמגדירים את שירות השער, כוללים את ההערה: networking.gke.io/load-balancer-type: "Internal"
ניהול אישורים חיצוניים בשער הכניסה
למידע על הפעלת ניהול אישורים חיצוניים בשער הכניסה באמצעות Envoy SDS, ראו שערים מאובטחים.

