במאמר הזה נסביר איך ליצור אשכול GKE במצב Standard או מאגר צמתים עם צמתי Arm, כדי שתוכלו להריץ עומסי עבודה של Arm ב-Google Kubernetes Engine (GKE). מידע על פריסת עומסי עבודה של Arm באשכולות Autopilot מופיע במאמר פריסת עומסי עבודה של Autopilot בארכיטקטורת Arm.
אפשר ליצור אשכולות עם צמתי Arm באמצעות סדרות המכונות C4A, N4A או Tau T2A. מידע נוסף על היתרונות של Arm ועל בחירת סדרת המכונות המתאימה ביותר לעומסי העבודה שלכם זמין במאמר מכונות וירטואליות של Arm ב-Compute.
באמצעות GKE, אתם יכולים ליצור אשכול עם מאגרי צמתים מסוג ארכיטקטורה אחד (לדוגמה, Arm) או עם כמה סוגי ארכיטקטורה (לדוגמה, Arm ו-x86). כשמריצים צמתים עם כמה סוגי ארכיטקטורה, אפשר לפרוס עומסי עבודה בארכיטקטורות שונות לאותו אשכול.
המסמך הזה מיועד לאנשי תפעול ולמפתחים שמקצים ומגדירים משאבי ענן ופורסים עומסי עבודה. מידע נוסף על תפקידים נפוצים זמין במאמר תפקידי משתמשים נפוצים ומשימות ב-GKE.
לפני שקוראים את המסמך הזה, כדאי להכיר את עומסי העבודה של Arm ב-GKE.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את gcloud CLI. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
- דרישות ומגבלות של צמתי C4A, N4A ו-T2A
- מוודאים שיש לכם את ההרשאות הנדרשות ליצירת אשכולות. לפחות, צריך להיות לכם תפקיד Kubernetes Engine Cluster Admin.
הגדרה של חשבונות שירות ב-IAM ל-GKE
ב-GKE נעשה שימוש בחשבונות שירות של IAM שמצורפים לצמתים כדי להריץ משימות מערכת כמו רישום ביומן ומעקב. לפחות, חשבונות השירות של הצמתים צריכים לקבל את התפקיד Kubernetes Engine Default Node Service Account (roles/container.defaultNodeServiceAccount) בפרויקט. כברירת מחדל, GKE משתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, שנוצר באופן אוטומטי בפרויקט, כחשבון השירות של הצומת.
כדי להעניק את התפקיד roles/container.defaultNodeServiceAccount לחשבון השירות שמוגדר כברירת המחדל של Compute Engine, מבצעים את השלבים הבאים:
המסוף
- נכנסים לדף Welcome:
- בשדה מספר הפרויקט, לוחצים על העתקה ללוח.
- נכנסים לדף IAM:
- לוחצים על Grant access.
- בשדה New principals, מציינים את הערך הבא:
מחליפים אתPROJECT_NUMBER-compute@developer.gserviceaccount.comPROJECT_NUMBERבמספר הפרויקט שהעתקתם. - בתפריט Select a role בוחרים בתפקיד Kubernetes Engine Default Node Service Account.
- לוחצים על Save.
gcloud
- איך מוצאים את Google Cloud מספר הפרויקט:
gcloud projects describe PROJECT_ID \ --format="value(projectNumber)"
מחליפים את
PROJECT_IDבמזהה הפרויקט.הפלט אמור להיראות כך:
12345678901
- מקצים את התפקיד
roles/container.defaultNodeServiceAccountלחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role="roles/container.defaultNodeServiceAccount"
מחליפים את
PROJECT_NUMBERבמספר הפרויקט מהשלב הקודם.
יצירת אשכול עם מאגר צמתים של Arm
בהוראות הבאות מוסבר איך ליצור אשכול חדש עם מאגר צמתים שמריץ צמתי Arm מסדרות המכונות C4A, N4A או Tau T2A.
אפשר להשתמש ב-CLI של gcloud, במסוף Google Cloud או ב-Terraform כדי ליצור את האשכול.
gcloud
יוצרים אשכול אזורי חדש עם מאגר צמתים שמוגדר כברירת מחדל באמצעות צמתי Arm:
gcloud container clusters create CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--node-locations NODE_LOCATIONS \
--machine-type ARM_MACHINE_TYPE \
--num-nodes NUM_NODES
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול החדש עם מאגר צמתים של Arm. -
CONTROL_PLANE_LOCATION: המיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור זמין לאשכולות אזוריים. האזור או התחום שנבחרו צריכים להיות אחד מהמיקומים הזמינים לסדרת מכונות Arm שבחרתם. -
NODE_LOCATIONS: האזורים של מאגר הצמתים, למשלus-central1-a. צריך לבחור מתוך האזורים הזמינים כדי ליצור את סדרת מכונות Arm או את מאגר הצמתים, אחרת יכול להיות שהיצירה תיכשל. -
ARM_MACHINE_TYPE: אחת מצורות המכונה הזמינות של C4A, צורות המכונה הזמינות של N4A או צורות המכונה הזמינות של T2A, כמוc4a-standard-8,n4a-standard-4אוt2a-standard-16. -
NUM_NODES: מספר הצמתים במאגר הצמתים של Arm.
מומלץ מאוד לציין חשבון שירות IAM עם הרשאות מינימליות שהצמתים יכולים להשתמש בו במקום בחשבון השירות שמוגדר כברירת מחדל של Compute Engine. במאמר שימוש בחשבון שירות עם הרשאות מינימליות מוסבר איך ליצור חשבון שירות עם הרשאות מינימליות.
כדי לציין חשבון שירות מותאם אישית ב-CLI של gcloud, מוסיפים את הדגל הבא לפקודה:
--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
מחליפים את SERVICE_ACCOUNT_NAME בשם של חשבון השירות עם ההרשאות המינימליות.
אם רוצים להגדיר הגדרות נוספות לאשכול, אפשר לעיין בהפניה gcloud container clusters create כדי לראות רשימה מלאה של ההגדרות הזמינות ליצירת אשכול.
המסוף
נכנסים לדף Create a Kubernetes cluster במסוף Google Cloud .
מגדירים את האשכול. מידע נוסף זמין בהוראות בנושא יצירת אשכול אזורי או יצירת אשכול אזורי.
בוחרים מיקום שבו צמתי Arm זמינים.
- בקטע Cluster basics, באפשרות Location type, בוחרים באפשרות Zonal או Regional:
- בתפריט הנפתח, בוחרים אזור או אזור שבו צמתי Arm זמינים.
- מסמנים את התיבה Specify default node locations (ציון מיקומי צמתים כברירת מחדל). בוחרים את האזורים שבהם צמתים של Arm זמינים.
כדי לבחור סוג מכונת Arm, בקטע המשנה Nodes, מתחת לאפשרות Configure node settings > Machine configuration > Machine family, בוחרים באפשרות GENERAL-PURPOSE. בתפריט הנפתח סדרה, בוחרים באפשרות C4A, N4A או T2A. בתפריט הנפתח סוג המכונה, בוחרים מבין האפשרויות הזמינות.
- אופציונלי, אפשר לציין חשבון שירות מותאם אישית ב-IAM עבור הצמתים:
- בדף הגדרות מתקדמות, מרחיבים את הקטע אבטחה.
- בתפריט Service account בוחרים את חשבון השירות המועדף.
מומלץ מאוד לציין חשבון שירות IAM עם הרשאות מינימליות שהצמתים יכולים להשתמש בו במקום בחשבון השירות שמוגדר כברירת מחדל של Compute Engine. במאמר שימוש בחשבון שירות עם הרשאות מינימליות מוסבר איך ליצור חשבון שירות עם הרשאות מינימליות.
לוחצים על יצירה.
Terraform
כדי ליצור אשכול אזורי עם מאגר צמתים שמוגדר כברירת מחדל באמצעות צמתי Arm באמצעות Terraform, אפשר להיעזר בדוגמה הבאה:
מידע נוסף על השימוש ב-Terraform זמין במאמר תמיכה ב-Terraform ל-GKE.
הוספה של מאגר צמתים מסוג Arm לאשכול GKE
אפשר להוסיף מאגר צמתים חדש לאשכול GKE Standard באמצעות gcloud CLI, Google Cloud המסוף או Terraform.
כדי ליצור אשכול GKE באמצעות כל סוגי הצמתים, מומלץ ליצור חשבון שירות לניהול זהויות והרשאות גישה (IAM) עם הרשאות מינימליות ולתת לו גישה למאגרי הצמתים, במקום להשתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.
הוראות ליצירת חשבון שירות עם הרשאות מינימליות זמינות במאמר הקשחת האבטחה באשכול.
gcloud
כדי להוסיף מאגר צמתים של Arm לאשכול קיים:
gcloud container node-pools create NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--node-locations NODE_LOCATIONS \
--machine-type ARM_MACHINE_TYPE \
--num-nodes NUM_NODES \
--service-account SERVICE_ACCOUNT
מחליפים את מה שכתוב בשדות הבאים:
-
NODE_POOL_NAME: השם של מאגר הצמתים החדש של Arm באשכול הקיים. -
CONTROL_PLANE_LOCATION: המיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור זמין לאשכולות אזוריים. -
CLUSTER_NAME: השם של האשכול שרוצים להוסיף לו מאגר צמתים של Arm. -
NODE_LOCATIONS: האזורים של מאגר הצמתים, למשלus-central1-a. צריך לבחור מתוך האזורים הזמינים כדי ליצור את סדרת מכונות Arm או את מאגר הצמתים, אחרת יכול להיות שהיצירה תיכשל. -
ARM_MACHINE_TYPE: אחת מצורות המכונה הזמינות של C4A, צורות המכונה הזמינות של N4A או צורות המכונה הזמינות של T2A, כמוc4a-standard-8,n4a-standard-4אוt2a-standard-16. -
NUM_NODES: מספר הצמתים במאגר הצמתים של Arm.
מומלץ מאוד לציין חשבון שירות IAM עם הרשאות מינימליות שהצמתים יכולים להשתמש בו במקום בחשבון השירות שמוגדר כברירת מחדל של Compute Engine. במאמר שימוש בחשבון שירות עם הרשאות מינימליות מוסבר איך ליצור חשבון שירות עם הרשאות מינימליות.
כדי לציין חשבון שירות מותאם אישית ב-CLI של gcloud, מוסיפים את הדגל הבא לפקודה:
--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
מחליפים את SERVICE_ACCOUNT_NAME בשם של חשבון השירות עם ההרשאות המינימליות.
אם רוצים להגדיר הגדרות נוספות למאגר הצמתים, אפשר לעיין במאמר בנושא gcloud container node-pools create כדי לראות רשימה מלאה של ההגדרות שזמינות כשיוצרים מאגר צמתים.
המסוף
כדי להוסיף מאגר צמתים של Arm לאשכול קיים, מבצעים את השלבים הבאים:
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
ברשימת האשכולות, לוחצים על שם האשכול שרוצים לשנות.
לוחצים על הכרטיסייה Nodes.
לוחצים על add_box Create user-managed node pool (יצירת מאגר צמתים בניהול המשתמש).
מגדירים את מאגר הצמתים.
בוחרים מיקומי צמתים שבהם צמתי Arm זמינים.
- בקטע פרטים של מאגר הצמתים, מסמנים את התיבה ציון מיקומי צמתים.
- בוחרים את האזורים שבהם צמתים של Arm זמינים.
כדי לבחור סוג מכונת Arm, בקטע המשנה Nodes, בקטע Configure node settings > Machine configuration > Machine family, בוחרים באפשרות GENERAL-PURPOSE. בתפריט הנפתח סדרה, בוחרים באפשרות C4A, N4A או T2A. בתפריט הנפתח סוג המכונה, בוחרים מבין האפשרויות הזמינות.
בתפריט הניווט, לוחצים על אבטחה.
- אופציונלי, אפשר לציין חשבון שירות מותאם אישית ב-IAM עבור הצמתים:
- בדף הגדרות מתקדמות, מרחיבים את הקטע אבטחה.
- בתפריט Service account בוחרים את חשבון השירות המועדף.
מומלץ מאוד לציין חשבון שירות IAM עם הרשאות מינימליות שהצמתים יכולים להשתמש בו במקום בחשבון השירות שמוגדר כברירת מחדל של Compute Engine. במאמר שימוש בחשבון שירות עם הרשאות מינימליות מוסבר איך ליצור חשבון שירות עם הרשאות מינימליות.
לוחצים על יצירה כדי להוסיף את מאגר הצמתים.
Terraform
כדי להוסיף מאגר צמתים שמשתמש בצמתי Arm לאשכול קיים באמצעות Terraform, אפשר להיעזר בדוגמה הבאה:
מחליפים את google_container_cluster.default.id בשם האשכול.
מידע נוסף על השימוש ב-Terraform זמין במאמר תמיכה ב-Terraform ל-GKE.
המאמרים הבאים
- פיתוח תמונות מרובות ארכיטקטורות לעומסי עבודה של Arm
- הכנת עומס עבודה של Arm לפריסה
- העברת אפליקציית x86 ב-GKE לארכיטקטורה מרובת ליבות עם Arm