הפעלה של תכונות אופציונליות במישור בקרה בתוך אשכול
בדף הזה מוסבר איך להפעיל תכונות אופציונליות ב-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.
| לא לכלול כמה בקשות לשינוי בפריסת העל בקובץ אחד | יוצרים קובצי שכבת-על נפרדים לכל בקשת שינוי |
|---|---|
![]() |
![]() |
איך מפעילים תכונות אופציונליות
הדוגמאות הבאות הן פשוטות יותר, והן מראות רק איך משתמשים בשכבות-על מותאמות אישית כדי להפעיל תכונות אופציונליות. מחליפים את 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 כדי למנוע בעיות בשדרוגים וכדי לספק התקנה גמישה יותר.
כדי להפעיל STRICT mTLS, במקום זאת צריך להגדיר מדיניות אימות עמיתים.
תמונת proxy ללא הפצה
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
לרוב סוגי ניפוי הבאגים של ה-proxy, צריך להשתמש ב-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.29.5-asm.12 - מישור נתונים מנוהל –
gke.gcr.io/asm/mdp:1.29.5-asm.12 - פיילוט –
gke.gcr.io/asm/pilot:1.29.5-asm.12 - Proxyv2 –
gke.gcr.io/asm/proxyv2:1.29.5-asm.12
הוספת תמונות למאגר פרטי
כדי להעלות תמונות של Cloud Service Mesh למאגר פרטי, צריך לבצע את השלבים הבאים.
-
שולפים את התמונות של Cloud Service Mesh:
docker pull gke.gcr.io/asm/install-cni:1.29.5-asm.12 docker pull gke.gcr.io/asm/pilot:1.29.5-asm.12 docker pull gke.gcr.io/asm/proxyv2:1.29.5-asm.12
-
יוצרים משתנה לכתובת ה-URL של הרישום הפרטי:
מחליפים אתexport PRIVATE_REGISTRY_URL=PRIVATE_REGISTRY_URL
PRIVATE_REGISTRY_URLבכתובת ה-URL של הרישום הפרטי. -
מתייגים את התמונות באמצעות כתובת ה-URL של המאגר הפרטי:
docker tag gke.gcr.io/asm/install-cni:1.29.5-asm.12 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/install-cni:1.29.5-asm.12 docker tag gke.gcr.io/asm/mdp:1.29.5-asm.12 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/pilot:1.29.5-asm.12 docker tag gke.gcr.io/asm/proxyv2:1.29.5-asm.12 \ ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/proxyv2:1.29.5-asm.12 - מעבירים את התמונות עם התגים למאגר הפרטי:
docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/install-cni:1.29.5-asm.12 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/pilot:1.29.5-asm.12 docker push ${PRIVATE_REGISTRY_URL}/gke.gcr.io/asm/proxyv2:1.29.5-asm.12 - (אופציונלי) אם אתם משתמשים בשירות קנוני, אתם צריכים להוסיף את התמונות של השירות הקנוני למאגר הפרטי שלכם.
- שולפים את תמונות השירות הקנוניות של 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.

