בדף הזה מוסבר איך קובעים פלטפורמת CPU מינימלית לצמתים באשכולות Google Kubernetes Engine (GKE).
למה כדאי לבחור פלטפורמת CPU מינימלית?
הגדרת פלטפורמת CPU מינימלית שימושית אם אתם צריכים יכולות ומפרטים ספציפיים של CPU, כמו תדר בסיס גבוה או פונקציונליות אופטימלית של ניהול צריכת חשמל.
חלק מעומסי העבודה המתקדמים שדורשים הרבה משאבי מחשוב בתחומים של גרפיקה, גיימינג ואנליטיקה יכולים להשתמש בתכונות הספציפיות שזמינות דרך ערכות תכונות שונות של פלטפורמות CPU, כמו AVX-2 ו-AVX-512. בחירה בפלטפורמת CPU ספציפית יכולה להניב שיפורים משמעותיים בזמן הביצוע ובביצועים. אם תציינו פלטפורמת CPU מינימלית, עומסי העבודה שלכם יוכלו לממש את היתרונות האלה בצורה צפויה יותר, ותוכלו להבטיח שהצמתים שלכם לא ישתמשו בפלטפורמת מעבד שלא מתאימה לעומסי העבודה שלהם.
איך בוחרים פלטפורמה
בטבלה הבאה מוסבר איך לבחור פלטפורמת CPU מינימלית בהתאם לאופן השימוש ב-GKE:
| היקף | תיאור | הגדרת אשכול נתמכת |
|---|---|---|
| ברמת עומס העבודה (מומלץ) | בוחרים פלטפורמה מינימלית במפרט ה-Pod. מערכת GKE מתזמנת את ה-Pods האלה באופן הבא:
|
|
| רמת הצומת והאשכול | בוחרים פלטפורמת CPU מינימלית כשיוצרים אשכול חדש במצב רגיל או מאגר צמתים. ההגדרה הזו לא תומכת בהקצאת צמתים אוטומטית (NAP). להוראות, דלגו אל בחירת פלטפורמת CPU מינימלית ברמת מאגר הצמתים. | אשכול רגיל חדש או מאגר צמתים חדש |
תמחור
אתם יכולים לבחור פלטפורמת CPU מינימלית ללא עלות נוספת.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז לאתחל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
בדיקת הזמינות של פלטפורמת המעבד (CPU)
פלטפורמות ה-CPU הזמינות משתנות בהתאם לאזור החישוב שבו הצמתים פועלים. כדאי לבדוק אילו פלטפורמות של מעבדים זמינות בתחום, גם אם משתמשים באשכולות במצב Autopilot או באשכולות סטנדרטיים אזוריים.
כדי לבדוק את הפלטפורמות הזמינות באזור ספציפי, מריצים את הפקודה הבאה:
gcloud compute zones describe COMPUTE_ZONE
מחליפים את COMPUTE_ZONE בשם של אזור, למשל us-central1-a. אם אתם משתמשים באשכול אזורי, ציינו שם של אזור באותו מיקום.
הפלט אמור להיראות כך:
availableCpuPlatforms:
- Intel Ice Lake
- Intel Cascade Lake
- Intel Skylake
- Intel Broadwell
- Intel Haswell
- Intel Ivy Bridge
- Intel Sandy Bridge
- AMD Milan
- AMD Rome
- Ampere Altra
- Intel Sapphire Rapids
כשמשתמשים בערכים האלה כדי לבקש פלטפורמת CPU מינימלית, צריך להחליף את הרווחים בשם הפלטפורמה בקו תחתון. לדוגמה, AMD_Milan.
בחירת פלטפורמת CPU מינימלית ברמת עומס העבודה
אם אתם משתמשים באשכולות GKE Autopilot או באשכולות GKE Standard עם הקצאת צמתים אוטומטית, אתם יכולים לבחור פלטפורמת CPU מינימלית במפרט ה-Pod. כשפורסים את עומס העבודה, מערכת GKE מתזמנת את ה-Pods האלה רק בצמתים עם הפלטפורמה שצוינה או עם פלטפורמה חדשה יותר. אנחנו ממליצים על השיטה הזו.
טייס אוטומטי
ב-Autopilot, מבקשים פלטפורמת CPU מינימלית וסוג מחשוב. סוג המחשוב חייב לתמוך בפלטפורמת ה-CPU. Autopilot תומך בבחירת פלטפורמת CPU מינימלית עבור מחלקת המחשוב Balanced. רשימה של פלטפורמות CPU זמינות בכל סוג מחשוב מופיעה במאמר מתי כדאי להשתמש בסוגי מחשוב ספציפיים.
שומרים את המניפסט הבא בתור min-cpu.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: min-cpu-platform
labels:
app: min-cpu
spec:
replicas: 3
selector:
matchLabels:
app: min-cpu
template:
metadata:
labels:
app: min-cpu
spec:
nodeSelector:
cloud.google.com/compute-class: "COMPUTE_CLASS"
supported-cpu-platform.cloud.google.com/PLATFORM: "true"
containers:
- name: hello-app
image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
ports:
- containerPort: 8080
resources:
requests:
cpu: 250m
מחליפים את מה שכתוב בשדות הבאים:
-
PLATFORM: השם של פלטפורמת ה-CPU, למשלAMD_Milan. שם הפלטפורמה תלוי באותיות רישיות (case-sensitive) וחייב להיות מופרד באמצעות קו תחתון. -
COMPUTE_CLASS: השם של מחלקת המחשוב, שחייב להיותBalanced.
רגילה
באשכולות Standard שבהם מופעלת הקצאה אוטומטית של צמתים, צריך לבקש פלטפורמת CPU לצד משפחת מכונות של Compute Engine. משפחת המכונות חייבת לתמוך בפלטפורמת ה-CPU. רשימה של פלטפורמות נתמכות לכל משפחת מכונות זמינה במאמר בנושא פלטפורמות CPU ב-Compute Engine.
שומרים את קובץ המניפסט הבא בשם min-cpu.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: min-cpu-platform
labels:
app: min-cpu
spec:
replicas: 3
selector:
matchLabels:
app: min-cpu
template:
metadata:
labels:
app: min-cpu
spec:
nodeSelector:
cloud.google.com/machine-family: MACHINE_FAMILY
cloud.google.com/requested-min-cpu-platform: PLATFORM
containers:
- name: hello-app
image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
ports:
- containerPort: 8080
resources:
requests:
cpu: 250m
מחליפים את מה שכתוב בשדות הבאים:
-
PLATFORM: השם של פלטפורמת המעבד (CPU), למשלAMD_Milan. שם הפלטפורמה תלוי אותיות רישיות (case-sensitive) וחייב להיות מופרד באמצעות קו תחתון. -
MACHINE_FAMILY: השם של משפחת המכונות, למשלn2d.
פורסים את עומס העבודה:
kubectl apply -f min-cpu.yaml
הצמתים שומרים על אותה פלטפורמה לאורך מחזור החיים שלהם, אלא אם פלטפורמת ה-CPU שצוינה הוצאה משימוש. במקרה כזה, הצמתים יפעלו על פלטפורמה חדשה יותר.
בחירת פלטפורמת CPU מינימלית ברמת מאגר הצמתים
בקטגוריות GKE Standard ללא הקצאה אוטומטית של צמתים, אפשר לציין פלטפורמת CPU מינימלית כשיוצרים קטגוריה חדשה או מאגר צמתים חדש. כדאי להשתמש בגישה הזו רק אם אי אפשר להשתמש בהגדרה ברמת עומס העבודה. ההגדרה הזו לא משפיעה על הקצאת צמתים אוטומטית.
gcloud
כדי ליצור מאגר צמתים חדש עם פלטפורמת CPU מינימלית באמצעות ה-CLI של gcloud, מגדירים את הדגל --min-cpu-platform ומציינים את שם פלטפורמת ה-CPU:
gcloud container node-pools create POOL_NAME \
--cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--min-cpu-platform PLATFORM
מחליפים את מה שכתוב בשדות הבאים:
-
POOL_NAME: השם של מאגר הצמתים החדש. -
CLUSTER_NAME: שם האשכול. -
CONTROL_PLANE_LOCATION: המיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור לאשכולות אזוריים. -
PLATFORM: פלטפורמת המעבד שרוצים להפעיל במאגר הצמתים, למשל"Intel Broadwell".
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Cloud de Confiance .
ברשימת האשכולות, לוחצים על שם האשכול שרוצים לשנות.
לוחצים על הכרטיסייה Nodes (צמתים).
לוחצים על add_box Create user-managed node pool (יצירת מאגר צמתים בניהול המשתמש).
מגדירים את מאגר הצמתים לפי הצורך.
בחלונית הניווט, לוחצים על Nodes.
בקטע Machine Configuration,
ברשימה הנפתחת Series, בוחרים סוג מכונה.
בתפריט הנפתח סוג המכונה, בוחרים באפשרות בהתאמה אישית.
בוחרים באפשרות ליבות ובאפשרות זיכרון לפי הצורך.
לוחצים על expand_more CPU Platform and GPU.
בתפריט הנפתח CPU Platform, בוחרים את הפלטפורמה המינימלית.
לוחצים על יצירה.
API
בגוף הבקשה, כוללים את המאפיין minCpuPlatform כחלק מהשדה nodeConfig. הערך של minCpuPlatform צריך להיות שם הפלטפורמה, כמו Intel Haswell, Intel Broadwell ו-Intel Sandy Bridge.
לדוגמה, הבקשה הבאה יוצרת מאגר צמתים חדש שמריץ את פלטפורמת Intel Broadwell:
POST https://container.googleapis.com/v1/projects/PROJECT_ID/regions/COMPUTE_REGION/clusters/CLUSTER_NAME/nodePools
{
'nodePool': {
'name': 'POOL_NAME',
'nodeConfig': {
'minCpuPlatform': 'Intel Broadwell'
...
}
...
}
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
COMPUTE_REGION: האזור של האשכול. -
CLUSTER_NAME: השם של האשכול. -
POOL_NAME: השם של מאגר הצמתים החדש.
אם מציינים את הפלטפורמה כשיוצרים אשכול, הגדרת פלטפורמת ה-CPU המינימלית חלה על מאגר הצמתים שמוגדר כברירת מחדל באשכול החדש.
חלופות
ב-GKE אפשר גם לבחור פלטפורמות CPU מינימליות בשיטות הבאות:
| חלופות | |
|---|---|
דגל ברמת האשכול דגל |
|
מגבלות
המגבלות הבאות חלות על כל השיטות לבחירת פלטפורמה עם מעבד מינימלי:
- כל המגבלות של פלטפורמות CPU מינימליות ב-Compute Engine חלות.
- הזמינות של פלטפורמות CPU ספציפיות משתנה בהתאם לאזור.
- סוג המכונה E2 לא תומך בפלטפורמות CPU מינימליות. צריך לבחור סוג מכונה אחר.
- באשכולות במצב Autopilot אפשר לבחור פלטפורמה רק עבור מחלקת המחשוב
Balanced, ולא עבור מחלקות המחשובScale-Outאו ברירת המחדל. - אם עומס העבודה ב-Autopilot מבקש יותר מ-80 מעבדי vCPU, פלטפורמת ה-CPU המינימלית חייבת להיות Intel Ice Lake או גרסה מאוחרת יותר. אם תציינו פלטפורמה פחות מתקדמת, יכול להיות שה-Pod יישאר במצב
Pendingללא הגבלת זמן.
המגבלה הבאה חלה על הגדרת פלטפורמת ה-CPU המינימלית של האשכול או של מאגר הצמתים:
אם בוחרים פלטפורמת מעבד (CPU) מינימלית שהיא פחות מתקדמת מפלטפורמת המעבד שמוגדרת כברירת מחדל באזור, או אם הפלטפורמה שנבחרה כבר לא זמינה, GKE בודק אם יש פלטפורמה חדשה יותר באותה עלות. אם קיימת פלטפורמה חדשה יותר באותה עלות, GKE יוצר את הצמתים באמצעות הפלטפורמה החדשה יותר. אם אין פלטפורמה חדשה יותר באותה עלות, לא ניתן ליצור את האשכול או את מאגר הצמתים.
המאמרים הבאים
- כאן אפשר לעיין ברשימה של פלטפורמות CPU זמינות.
- מידע נוסף על אזורים וזונים
- מידע נוסף על צמתים