בדף הזה מוסבר איך מציינים פלטפורמת CPU מינימלית לצמתים באשכולות Google Kubernetes Engine (GKE).
למה כדאי לבחור פלטפורמה עם מעבד מינימלי?
הגדרת פלטפורמת מעבד מינימלית שימושית אם נדרשים יכולות ומפרטים ספציפיים של מעבד, כמו תדר בסיסי גבוה או פונקציונליות אופטימלית של ניהול צריכת חשמל.
עומסי עבודה מתקדמים מסוימים שדורשים הרבה משאבי מחשוב בתחומים של גרפיקה, משחקים ואנליטיקה יכולים להשתמש בתכונות הספציפיות שזמינות דרך ערכות תכונות שונות של פלטפורמות CPU, כמו AVX-2 ו-AVX-512. בחירה בפלטפורמת CPU ספציפית יכולה להניב שיפורים משמעותיים בזמן הביצוע ובביצועים. אם מציינים פלטפורמת CPU מינימלית, עומסי העבודה יכולים להשיג את היתרונות האלה בצורה צפויה יותר, ואפשר לוודא שהצמתים אף פעם לא משתמשים בפלטפורמת CPU שלא מתאימה לעומסי העבודה שלהם.
איך בוחרים פלטפורמה
בטבלה הבאה מוסבר איך לבחור פלטפורמת מעבד מינימלית בהתאם לאופן השימוש ב-GKE:
| היקף | תיאור | הגדרת אשכול נתמכת |
|---|---|---|
| ברמת עומס העבודה (מומלץ) | בוחרים פלטפורמה מינימלית במפרט ה-Pod. מערכת GKE מתזמנת את ה-Pods האלה באופן הבא:
|
|
| רמת הצומת והאשכול | בוחרים פלטפורמת CPU מינימלית כשיוצרים אשכול חדש במצב רגיל או מאגר צמתים חדש. ההגדרה הזו לא תומכת בהקצאת צמתים אוטומטית (NAP). הוראות מפורטות מופיעות בקטע בחירת פלטפורמת מעבד מינימלית ברמת מאגר הצמתים. | אשכול סטנדרטי חדש או מאגר צמתים חדש |
תמחור
אתם יכולים לבחור פלטפורמת CPU מינימלית ללא עלות נוספת.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- אם רוצים להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
בדיקת הזמינות של פלטפורמת המעבד
פלטפורמות המעבד הזמינות משתנות בהתאם לאזור החישוב שבו הצמתים פועלים. כדאי לבדוק אילו פלטפורמות של מעבדים זמינות בתחום מסוים, גם אם משתמשים באשכולות במצב 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, מבקשים פלטפורמת מעבד מינימלית וסוג מחשוב. סוג המחשוב חייב לתמוך בפלטפורמת המעבד. התכונה 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. שם הפלטפורמה הוא תלוי אותיות רישיות וחייב להיות מופרד באמצעות קו תחתון. -
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. שם הפלטפורמה הוא תלוי אותיות רישיות וחייב להיות מופרד באמצעות קו תחתון. 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 במסוף Google Cloud .
ברשימת האשכולות, לוחצים על שם האשכול שרוצים לשנות.
לוחצים על add_box הוספת מאגר צמתים.
מגדירים את מאגר הצמתים לפי הצורך.
בחלונית הניווט, לוחצים על צמתים.
בקטע Machine Configuration (הגדרת המכונה),
ברשימה הנפתחת סדרה, בוחרים סוג מכונה.
ברשימה הנפתחת סוג המכונה בוחרים באפשרות בהתאמה אישית.
בוחרים באפשרות ליבות ובאפשרות זיכרון לפי הצורך.
לוחצים על expand_more CPU Platform and GPU (פלטפורמת CPU ו-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 אפשר גם לבחור פלטפורמות עם מעבד מינימלי באמצעות השיטות הבאות:
| חלופות | |
|---|---|
דגל ברמת האשכול
|
|
מגבלות
המגבלות הבאות חלות על כל השיטות לבחירת פלטפורמה עם מעבד מינימלי:
- כל המגבלות של פלטפורמות המעבד המינימליות ב-Compute Engine חלות.
- הזמינות של פלטפורמות CPU ספציפיות משתנה בהתאם לאזור.
- סוג המכונה E2 לא תומך בפלטפורמות CPU מינימליות. צריך לבחור סוג מכונה אחר.
- באשכולות במצב Autopilot אפשר לבחור פלטפורמה רק עבור מחלקת המחשוב
Balanced, ולא עבור מחלקות המחשוב שמוגדרות כברירת מחדל אוScale-Out. - אם עומס העבודה של Autopilot דורש יותר מ-80 מעבדי vCPU, פלטפורמת המעבד המינימלית צריכה להיות Intel Ice Lake או גרסה מתקדמת יותר. אם תציינו פלטפורמה פחות מתקדמת, יכול להיות שה-Pod יישאר במצב
Pendingללא הגבלת זמן.
המגבלה הבאה חלה על ההגדרה של פלטפורמת המינימום של CPU באשכול או במאגר צמתים:
אם בוחרים פלטפורמת CPU מינימלית שהיא פחות מתקדמת מפלטפורמת ה-CPU שמוגדרת כברירת מחדל באזור, או אם הפלטפורמה שנבחרה כבר לא זמינה, GKE בודק אם יש פלטפורמה חדשה יותר באותה עלות. אם קיימת פלטפורמה חדשה יותר באותה עלות, GKE יוצר את הצמתים באמצעות הפלטפורמה החדשה יותר. אם אין פלטפורמה חדשה יותר באותו מחיר, יצירת אשכול או מאגר צמתים תיכשל.