בדף הזה מוסבר איך לשפר את זמן האחזור של הפעלת עומסי עבודה באמצעות שימוש בדיסקים משניים לאתחול ב-Google Kubernetes Engine (GKE) כדי לטעון מראש נתונים או תמונות של קונטיינרים בצמתים חדשים. כך עומסי העבודה יכולים להשיג הפעלה מהירה במצב התחלתי ולשפר את הניצול הכולל של המשאבים שהוקצו.
לפני שקוראים את הדף הזה, חשוב לוודא שמכירים את Google Cloud, Kubernetes, קונטיינרים, YAML, זמן ריצה של containerd ו-Google Cloud CLI.
סקירה כללית
אפשר להגדיר מאגרי צמתים עם דיסקים משניים לאתחול, שזמינים בגרסאות עדכניות של GKE. אתם יכולים להגדיר ב-GKE הקצאה של הצמתים וטעינה מראש של נתונים, כמו מודל למידת מכונה (ML) או תמונת קונטיינר. שימוש בתמונות קונטיינר או בנתונים שנטענו מראש בדיסק משני מניב את היתרונות הבאים לעומסי העבודה:
- זמן האחזור קצר יותר כששולפים תמונות גדולות של מאגרי תגים או כשמורידים נתונים
- התאמה מהירה יותר לעומס (autoscaling)
- שחזור מהיר יותר מהפרעות כמו אירועי תחזוקה ושגיאות מערכת
בקטעים הבאים מוסבר איך להגדיר את דיסק האתחול המשני באשכולות של GKE Autopilot ו-Standard.
איך פועלים דיסקים משניים לאתחול
עומס העבודה יכול להתחיל מהר יותר אם משתמשים בתמונת מאגר טעונה מראש או בנתונים בדיסקים משניים של אתחול. לדיסקים משניים של אתחול יש את המאפיינים הבאים:
- דיסקי אתחול משניים הם דיסקים לאחסון מתמיד שמגובים על ידי אחסון בלוקים מבוזר.
- ה-Persistent Disk מופעל מתמונות דיסק שיוצרים מראש.
- מטעמי יכולת הרחבה, לכל צומת נוצר מופע משלו של Persistent Disk מתוך תמונת הדיסק. המופעים של הדיסק הקשיח הקבוע האלה נמחקים כשמחקקים את הצומת.
- אם תמונת הדיסק כבר נמצאת בשימוש באזור, זמן היצירה של כל הדיסקים הבאים שנוצרו מאותה תמונת דיסק יהיה נמוך יותר.
- סוג דיסק האתחול המשני זהה לדיסק האתחול של הצומת.
- גודל דיסק האתחול המשני נקבע לפי גודל תמונת הדיסק.
בדרך כלל, הוספה של דיסקים משניים לאתחול למאגרי הצמתים לא מגדילה את זמן הקצאת הצמתים. GKE מקצה דיסקים משניים לאתחול מתמונת הדיסק במקביל לתהליך הקצאת הצמתים.
כדי לתמוך בתמונות קונטיינרים שנטענו מראש, GKE מרחיב את זמן הריצה של containerd באמצעות תוספים שקוראים את תמונות הקונטיינרים מדיסקי אתחול משניים. שכבות הבסיס משתמשות מחדש בתמונות של קונטיינרים.
טוענים מראש שכבות בסיס גדולות לדיסק האתחול המשני, בעוד שאפשר לשלוף את השכבות העליונות הקטנות ממאגר התמונות של הקונטיינר.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את gcloud CLI. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
מפעילים את Container File System API.
דרישות
הדרישות הבאות חלות על שימוש בדיסק אתחול משני:
- משתמשים בסוג נתמך של תמונת צומת ובגרסת GKE נתמכת:
- מערכת הפעלה שמותאמת לקונטיינרים עם containerd (
COS_CONTAINERD):- GKE Standard ו-Autopilot: גרסה 1.30.1-gke.1329000 ואילך.
- Ubuntu עם containerd (
UBUNTU_CONTAINERD):- GKE Standard ו-Autopilot: גרסה 1.35.0-gke.1403000 ואילך.
- מערכת הפעלה שמותאמת לקונטיינרים עם containerd (
- כשמשנים את תמונת הדיסק, צריך ליצור מאגר צמתים חדש. אי אפשר לעדכן את תמונת הדיסק בצמתים קיימים.
- מגדירים את הזרמת תמונות כדי להשתמש בתכונה של דיסק האתחול המשני.
מכינים את תמונת הדיסק עם נתונים מוכנים בזמן הבנייה או עם תמונות קונטיינר שנטענו מראש. מוודאים שיש לאשכול גישה לתמונת הדיסק כדי לטעון אותה לצמתים.
שיטה מומלצת: אוטומציה של תמונת הדיסק בצינור עיבוד נתונים של CI/CD.
מגבלות
אי אפשר לעדכן דיסקים משניים לאתחול של צמתים קיימים. כדי לצרף תמונת דיסק חדשה, יוצרים מאגר צמתים חדש.
תמחור
כשיוצרים מאגרי צמתים עם דיסקים משניים להפעלה, מערכת GKE מצרפת דיסק של אחסון מתמיד לכל צומת במאגר הצמתים. החיוב על דיסקים לאחסון מתמיד מבוסס על תמחור הדיסקים ב-Compute Engine.
הכנת תמונת דיסק האתחול המשני
כדי להכין את קובץ האימג' של דיסק האתחול המשני, בוחרים בכרטיסייה Images (תמונות) כדי לטעון מראש קובצי אימג' של קונטיינרים, או בכרטיסייה Data (נתונים) כדי לטעון מראש נתונים, ואז מבצעים את ההוראות הבאות:
תמונות
GKE מספק כלי שנקרא
gke-disk-image-builder
ליצירת מכונה וירטואלית (VM), שליפת תמונות של מאגרי תגים בדיסק, ואז יצירת תמונת דיסק מהדיסק הזה.
כדי ליצור קובץ אימג' של דיסק עם כמה קובצי אימג' של קונטיינרים שנטענו מראש, מבצעים את השלבים הבאים:
- יוצרים קטגוריה של Cloud Storage כדי לאחסן את יומני הביצוע של
gke-disk-image-builder. - יצירת תמונת דיסק באמצעות
gke-disk-image-builder.
go run ./cli \
--project-name=PROJECT_ID \
--image-name=DISK_IMAGE_NAME \
--zone=LOCATION \
--gcs-path=gs://LOG_BUCKET_NAME \
--disk-size-gb=10 \
--container-image=docker.io/library/python:latest \
--container-image=docker.io/library/nginx:latest
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: השם של Google Cloud הפרויקט.
- DISK_IMAGE_NAME: השם של תמונת הדיסק. לדוגמה,
nginx-python-image. - LOCATION: המיקום של האשכול.
- LOG_BUCKET_NAME: השם של קטגוריית Cloud Storage שבה יאוחסנו יומני הביצוע. לדוגמה,
gke-secondary-disk-image-logs/
כשיוצרים קובץ אימג' של דיסק באמצעות gke-disk-image-builder,Google Cloud יוצר כמה משאבים כדי להשלים את התהליך (לדוגמה, מכונה וירטואלית, דיסק זמני ודיסק אחסון מתמיד). אחרי ההרצה, הכלי ליצירת תמונות מוחק את כל המשאבים, חוץ מתמונת הדיסק שיצרתם.
נתונים
כדי ליצור קובץ אימג' של דיסק בהתאמה אישית כמקור הנתונים, מבצעים את השלבים הבאים:
הגדרת דיסק האתחול המשני
אפשר להגדיר את דיסק האתחול המשני באשכול GKE Autopilot או באשכול רגיל.
כדי ליהנות מחוויית Kubernetes מנוהלת באופן מלא, אפשר להשתמש באשכול Autopilot. כדי לבחור את מצב הפעולה של GKE שהכי מתאים לעומסי העבודה שלכם, אפשר לעיין במאמר בחירת מצב פעולה של GKE.
שימוש ב-GKE Autopilot
בקטע הזה, יוצרים רשימת היתרים של תמונות דיסק כדי לאפשר את תמונת הדיסק באשכול GKE Autopilot קיים. לאחר מכן משנים את בורר הצמתים של ה-Pod כך שישתמש בדיסק אתחול משני.
אישור השימוש בקובצי תמונות של דיסקים בפרויקט
בקטע הזה יוצרים GCPResourceAllowlist כדי לאפשר ל-GKE ליצור צמתים עם דיסקים משניים לאתחול מתמונות הדיסק בפרויקטGoogle Cloud .
שומרים את קובץ המניפסט הבא בשם
allowlist-disk.yaml:apiVersion: "node.gke.io/v1" kind: GCPResourceAllowlist metadata: name: gke-secondary-boot-disk-allowlist spec: allowedResourcePatterns: - "projects/PROJECT_ID/global/images/.*"מחליפים את PROJECT_ID במזהה הפרויקט כדי לארח את קובץ האימג' של הדיסק.
החלת המניפסט:
kubectl apply -f allowlist-disk.yamlGKE יוצר צמתים עם דיסקים משניים לאתחול מכל תמונות הדיסק בפרויקט.
עדכון של בורר הצמתים של ה-Pod כדי להשתמש בדיסק אתחול משני
בקטע הזה משנים את מפרט ה-Pod כדי ש-GKE ייצור את הצמתים עם דיסק האתחול המשני.
מוסיפים
nodeSelectorלתבנית ה-Pod:nodeSelector: cloud.google.com.node-restriction.kubernetes.io/gke-secondary-boot-disk-DISK_IMAGE_NAME: CONTAINER_IMAGE_CACHE.PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
- DISK_IMAGE_NAME: השם של תמונת הדיסק.
- PROJECT_ID: מזהה הפרויקט שבו מאוחסנת תמונת הדיסק.
משתמשים בפקודה
kubectl applyכדי להחיל את המפרט של Kubernetes עם תבנית ה-Pod.בודקים שנעשה שימוש במטמון של דיסק האתחול המשני:
kubectl get events --all-namespacesהפלט אמור להיראות כך:
75s Normal SecondaryDiskCachin node/gke-pd-cache-demo-default-pool-75e78709-zjfm Image gcr.io/k8s-staging-jobsejt/pytorch-mnist:latest is backed by secondary disk cacheהדרך המהימנה יותר לוודא שהמטמון של דיסק האתחול המשני נמצא בשימוש:
מריצים שאילתה ביומן מהצומת שרוצים להשתמש בו באמצעות שם היומן הזה:
logName="projects/PROJECT_ID/logs/gcfs-snapshotter"מחליפים את
PROJECT_IDבמזהה הפרויקט ב- Google Cloud .היומן שדומה ל:
Image gcr.io/k8s-staging-jobsejt/pytorch-mnist:latest is backed by secondary boot disk caching by 100.0%...מצביע על כך שהמטמון של דיסק האתחול המשני היה בשימוש.בודקים את זמן האחזור של משיכת התמונה:
kubectl describe pod POD_NAMEמחליפים את POD_NAME בשם של ה-Pod.
הפלט אמור להיראות כך:
… Normal Pulled 15m kubelet Successfully pulled image "docker.io/library/nginx:latest" in 0.879149587s …
החביון הצפוי של משיכת התמונה עבור תמונת מאגר הנתונים במטמון צריך להיות נמוך משמעותית, ללא קשר לגודל התמונה.
שימוש ב-GKE Standard
כדי ליצור אשכול GKE Standard ומאגר צמתים, צריך לבצע את ההוראות הבאות ולבחור בכרטיסייה Images (תמונות) או בכרטיסייה Data (נתונים), בהתאם לשאלה אם רוצים לטעון מראש תמונות של קונטיינרים או לטעון מראש נתונים לדיסק האתחול המשני:
תמונות
כדי להגדיר דיסק אתחול משני, משתמשים ב-Google Cloud CLI או ב-Terraform:
gcloud
יוצרים אשכול GKE Standard עם סטרימינג של תמונות:
gcloud container clusters create CLUSTER_NAME \ --location=LOCATION \ --cluster-version=VERSION \ --enable-image-streamingמחליפים את מה שכתוב בשדות הבאים:
- CLUSTER_NAME: השם של האשכול.
- LOCATION: מיקום האשכול.
- VERSION: גרסת GKE שבה ייעשה שימוש. גרסת GKE צריכה להיות
1.28.3-gke.1067000ואילך.
יוצרים מאגר צמתים עם דיסק אתחול משני באותו פרויקט:
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location LOCATION \ --enable-image-streaming \ --secondary-boot-disk=disk-image=global/images/DISK_IMAGE_NAME,mode=CONTAINER_IMAGE_CACHEמחליפים את מה שכתוב בשדות הבאים:
- NODE_POOL_NAME: שם מאגר הצמתים.
- CLUSTER_NAME: השם של האשכול הקיים.
- LOCATION: אזור או אזורים של מחשוב, מופרדים בפסיקים, של האשכול.
- DISK_IMAGE_NAME: השם של תמונת הדיסק.
כדי ליצור מאגר צמתים עם דיסק אתחול משני מתמונת הדיסק בפרויקט אחר, צריך לבצע את השלבים במאמר שימוש בדיסק אתחול משני בפרויקט אחר.
מוסיפים
nodeSelectorלתבנית ה-Pod:nodeSelector: cloud.google.com/gke-nodepool: NODE_POOL_NAMEבודקים שנעשה שימוש במטמון של דיסק האתחול המשני:
kubectl get events --all-namespacesהפלט אמור להיראות כך:
75s Normal SecondaryDiskCachin node/gke-pd-cache-demo-default-pool-75e78709-zjfm Image gcr.io/k8s-staging-jobsejt/pytorch-mnist:latest is backed by secondary disk cacheהדרך המהימנה יותר לוודא שהמטמון של דיסק האתחול המשני נמצא בשימוש:
מריצים שאילתה ביומן מהצומת שרוצים להשתמש בו באמצעות שם היומן הזה:
logName="projects/PROJECT_ID/logs/gcfs-snapshotter"מחליפים את
PROJECT_IDבמזהה הפרויקט ב- Google Cloud .היומן שדומה ל:
Image gcr.io/k8s-staging-jobsejt/pytorch-mnist:latest is backed by secondary boot disk caching by 100.0%...מצביע על כך שהמטמון של דיסק האתחול המשני היה בשימוש.מריצים את הפקודה הבאה כדי לבדוק את זמן האחזור של משיכת האימג':
kubectl describe pod POD_NAMEמחליפים את
POD_NAMEבשם של ה-Pod.הפלט אמור להיראות כך:
… Normal Pulled 15m kubelet Successfully pulled image "docker.io/library/nginx:latest" in 0.879149587s …
החביון הצפוי של שליפת תמונת מאגר מהמטמון צריך להיות כמה שניות לכל היותר, ללא קשר לגודל התמונה.
Terraform
כדי ליצור אשכול עם מאגר הצמתים שמוגדר כברירת מחדל באמצעות Terraform, אפשר להיעזר בדוגמה הבאה:
יוצרים מאגר צמתים עם דיסק אתחול משני באותו פרויקט:
מידע נוסף על שימוש ב-Terraform זמין במאמר תמיכה ב-Terraform ב-GKE.
מוסיפים
nodeSelectorלתבנית ה-Pod:nodeSelector: cloud.google.com/gke-nodepool: NODE_POOL_NAMEבודקים שנעשה שימוש במטמון של דיסק האתחול המשני:
kubectl get events --all-namespacesהפלט אמור להיראות כך:
75s Normal SecondaryDiskCachin node/gke-pd-cache-demo-default-pool-75e78709-zjfm Image gcr.io/k8s-staging-jobsejt/pytorch-mnist:latest is backed by secondary disk cacheמריצים את הפקודה הבאה כדי לבדוק את זמן האחזור של משיכת האימג':
kubectl describe pod POD_NAMEמחליפים את POD_NAME בשם של ה-Pod.
הפלט אמור להיראות כך:
… Normal Pulled 15m kubelet Successfully pulled image "docker.io/library/nginx:latest" in 0.879149587s …
החביון הצפוי של שליפת תמונת מאגר מהמטמון לא צריך להיות יותר מכמה שניות, ללא קשר לגודל התמונה.
מידע נוסף על שימוש ב-Terraform זמין במאמר תמיכה ב-Terraform ל-GKE.
נתונים
אפשר להגדיר דיסק אתחול משני ולטעון מראש נתונים באמצעות Google Cloud CLI או Terraform:
gcloud
יוצרים אשכול GKE Standard עם סטרימינג של תמונות:
gcloud container clusters create CLUSTER_NAME \ --location=LOCATION \ --cluster-version=VERSION \ --enable-image-streamingמחליפים את מה שכתוב בשדות הבאים:
- CLUSTER_NAME: השם של האשכול.
- LOCATION: מיקום האשכול.
- VERSION: גרסת GKE שבה ייעשה שימוש. גרסת GKE צריכה להיות 1.28.3-gke.1067000 ואילך.
יוצרים מאגר צמתים עם דיסק אתחול משני באמצעות הדגל
--secondary-boot-disk:gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location LOCATION \ --enable-image-streaming \ --secondary-boot-disk=disk-image=global/images/DISK_IMAGE_NAMEמחליפים את מה שכתוב בשדות הבאים:
- NODE_POOL_NAME: שם מאגר הצמתים.
- CLUSTER_NAME: השם של האשכול הקיים.
- LOCATION: אזור או אזורים של מחשוב, מופרדים בפסיקים, של האשכול.
- DISK_IMAGE_NAME: השם של תמונת הדיסק.
כדי ליצור מאגר צמתים עם דיסק אתחול משני מתמונת הדיסק בפרויקט אחר, צריך לבצע את השלבים במאמר שימוש בדיסק אתחול משני בפרויקט אחר.
GKE יוצר מאגר צמתים שבו לכל צומת יש דיסק משני עם נתונים שנטענו מראש. GKE מצרף ומטמיע את דיסק האתחול המשני בצומת.
כדי לגשת לנתונים, צריך לטעון את קובץ האימג' של דיסק האתחול המשני בקונטיינרים של ה-Pod באמצעות טעינת נפח hostPath. מגדירים את
/usr/local/data_path_sbdלנתיב במאגר שבו רוצים שהנתונים יהיו:apiVersion: v1 kind: Pod metadata: name: pod-name spec: containers: ... volumeMounts: - mountPath: /usr/local/data_path_sbd name: data-path-sbd ... volumes: - name: data-path-sbd hostPath: path: /mnt/disks/gke-secondary-disks/gke-DISK_IMAGE_NAME-diskמחליפים את DISK_IMAGE_NAME בשם של קובץ האימג' של הדיסק.
Terraform
כדי ליצור אשכול עם מאגר הצמתים שמוגדר כברירת מחדל באמצעות Terraform, אפשר להיעזר בדוגמה הבאה:
יוצרים מאגר צמתים עם דיסק אתחול משני באותו פרויקט:
מידע נוסף על שימוש ב-Terraform זמין במאמר תמיכה ב-Terraform ב-GKE.
כדי לגשת לנתונים, צריך לטעון את קובץ האימג' של דיסק האתחול המשני בקונטיינרים של ה-Pod באמצעות טעינת נפח hostPath. מגדירים את
/usr/local/data_path_sbdלנתיב במאגר שבו רוצים שהנתונים יהיו:apiVersion: v1 kind: Pod metadata: name: pod-name spec: containers: ... volumeMounts: - mountPath: /usr/local/data_path_sbd name: data-path-sbd ... volumes: - name: data-path-sbd hostPath: path: /mnt/disks/gke-secondary-disks/gke-DISK_IMAGE_NAME-diskמחליפים את DISK_IMAGE_NAME בשם של קובץ האימג' של הדיסק.
התאמה לעומס (autoscaling) באשכול עם דיסקים משניים לאתחול
כדי ליצור מאגר צמתים ולהגדיר שינוי גודל אוטומטי של האשכול בדיסק אתחול משני, משתמשים ב-Google Cloud CLI:
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location LOCATION \
--enable-image-streaming \
--secondary-boot-disk=disk-image=global/images/DISK_IMAGE_NAME,mode=CONTAINER_IMAGE_CACHE \
--enable-autoscaling \
--num-nodes NUM_NODES \
--min-nodes MIN_NODES \
--max-nodes MAX_NODES
מחליפים את מה שכתוב בשדות הבאים:
- NODE_POOL_NAME: שם מאגר הצמתים.
- CLUSTER_NAME: השם של האשכול הקיים.
- LOCATION: אזור או אזורים של מחשוב, מופרדים בפסיקים, של האשכול.
- DISK_IMAGE_NAME: השם של תמונת הדיסק.
- MIN_NODES: המספר המינימלי של הצמתים שניתן להגדיל או להקטין באופן אוטומטי עבור מאגר הצמתים שצוין בכל אזור. כדי לציין את המספר המינימלי של צמתים לכל מאגר הצמתים ב-GKE מגרסה 1.24 ואילך, משתמשים ב-
--total-min-nodes. הדגלים--total-min-nodesו---total-max-nodesהם בלעדיים הדדית עם הדגלים--min-nodesו---max-nodes. - MAX_NODES: המספר המקסימלי של הצמתים שניתן להרחבה אוטומטית עבור מאגר הצמתים שצוין לכל אזור. כדי לציין את המספר המקסימלי של צמתים לכל מאגר הצמתים ב-GKE מגרסה 1.24 ואילך, משתמשים ב-
--total-max-nodes. הדגלים--total-min-nodesו---total-max-nodesהם בלעדיים הדדית עם הדגלים--min-nodesו---max-nodes.
ניהול הקצאות אוטומטי של צמתים עם דיסקים משניים לאתחול
ב-GKE 1.30.1-gke.1329000 ואילך, אפשר להגדיר הקצאת משאבים אוטומטית של צמתים כדי ליצור ולמחוק באופן אוטומטי מאגרי צמתים בהתאם לדרישות המשאבים של עומסי העבודה.
יוצרים משאב מותאם אישית של רשימת היתרים של קובץ אימג' לדיסק אתחול משני לניהול הקצאות אוטומטי של צמתים ב-GKE, בדומה לדוגמה הבאה:
apiVersion: "node.gke.io/v1" kind: GCPResourceAllowlist metadata: name: gke-secondary-boot-disk-allowlist spec: allowedResourcePatterns: - "projects/<PROJECT_ID>/global/images/.*"מחליפים את PROJECT_ID במזהה הפרויקט כדי לארח את קובץ האימג' של הדיסק.
כדי לפרוס את המשאב המותאם אישית של רשימת ההיתרים באשכול, מריצים את הפקודה הבאה:
kubectl apply -f ALLOWLIST_FILEמחליפים את ALLOWLIST_FILE בשם הקובץ של המניפסט.
מעדכנים את בורר הצמתים של ה-Pod כדי להשתמש בדיסק האתחול המשני:
nodeSelector: cloud.google.com.node-restriction.kubernetes.io/gke-secondary-boot-disk-DISK_IMAGE_NAME:CONTAINER_IMAGE_CACHE.PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
- DISK_IMAGE_NAME: השם של תמונת הדיסק.
- PROJECT_ID: מזהה הפרויקט שבו מאוחסנת תמונת הדיסק.
שימוש בדיסק אתחול משני בפרויקט אחר
כשיוצרים מאגר צמתים עם דיסק אתחול משני, אפשר להגדיר ל-GKE להשתמש בתמונת הדיסק בפרויקט אחר באמצעות הדגל --secondary-boot-disk.
יוצרים מאגר צמתים עם דיסק אתחול משני מתמונת הדיסק בפרויקט אחר באמצעות הדגל
--secondary-boot-disk. לדוגמה:gcloud beta container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location LOCATION \ --enable-image-streaming \ --secondary-boot-disk=disk-image=projects/IMAGE_PROJECT_ID/global/images/DISK_IMAGE_NAME,mode=CONTAINER_IMAGE_CACHEמחליפים את מה שכתוב בשדות הבאים:
- DISK_IMAGE_NAME: השם של תמונת הדיסק.
- IMAGE_PROJECT_ID: השם של הפרויקט שאליו שייכת תמונת הדיסק.
GKE יוצר מאגר צמתים שבו לכל צומת יש דיסק משני עם נתונים שנטענו מראש. מערכת GKE מצרפת ומטמיעה את דיסק האתחול המשני בצומת.
כדי לתת גישה לתמונות דיסק ששייכות לפרויקט אחר, מוסיפים את התפקידים Compute Image User לחשבונות השירות של האשכול:
- חשבון שירות ברירת המחדל של שירות המחשוב: CLUSTER_PROJECT_NUMBER@cloudservices.gserviceaccount.com
- חשבון שירות של GKE: service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com
gcloud projects add-iam-policy-binding IMAGE_PROJECT_ID \ --member serviceAccount:CLUSTER_PROJECT_NUMBER@cloudservices.gserviceaccount.com \ --role roles/compute.imageUser gcloud projects add-iam-policy-binding IMAGE_PROJECT_ID \ --member serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com \ --role roles/compute.imageUser
המאמרים הבאים
- אפשר להשתמש בהזרמת תמונות כדי לשלוף קובצי אימג' של קונטיינרים על ידי הזרמת נתוני התמונה לפי הצורך של עומסי העבודה.
- במאמר שיפור היעילות של עומסי עבודה באמצעות NCCL Fast Socket מוסבר איך להשתמש בפלאגין NVIDIA Collective Communication Library (NCCL) Fast Socket.