במאמר הזה מוסבר איך ליצור אשכול 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.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- אם רוצים להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את ה-CLI של gcloud. אם התקנתם בעבר את ה-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 (חשבון השירות שמשמש כברירת מחדל לצומת ב-Kubernetes Engine).
- לוחצים על Save.
gcloud
- איך מוצאים את Google Cloud מספר הפרויקט:
gcloud projects describe PROJECT_ID \ --format="value(projectNumber)"
מחליפים את
PROJECT_IDבמזהה הפרויקט.הפלט אמור להיראות כך:
12345678901
- מקצים לחשבון השירות של Compute Engine שמוגדר כברירת מחדל את התפקיד
roles/container.defaultNodeServiceAccount: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 > משפחת מכונות, בוחרים באפשרות GENERAL-PURPOSE. בתפריט הנפתח סדרה, בוחרים באפשרות C4A, N4A או T2A. בתפריט הנפתח סוג המכונה, בוחרים מבין האפשרויות הזמינות.
- אופציונלי, אפשר לציין חשבון שירות מותאם אישית ב-IAM עבור הצמתים:
- בדף הגדרות מתקדמות, מרחיבים את הקטע אבטחה.
- בתפריט Service account בוחרים את חשבון השירות המועדף.
מומלץ מאוד לציין חשבון שירות IAM עם הרשאות מינימליות, שהצמתים יוכלו להשתמש בו במקום בחשבון השירות שמוגדר כברירת מחדל של Compute Engine. במאמר שימוש בחשבון שירות עם הרשאות מינימליות מוסבר איך ליצור חשבון שירות עם הרשאות מינימליות.
לוחצים על יצירה.
Terraform
כדי ליצור אשכול אזורי עם מאגר הצמתים שמוגדר כברירת מחדל באמצעות צמתי Arm, אפשר להיעזר בדוגמה הבאה:
מידע נוסף על השימוש ב-Terraform זמין במאמר תמיכה ב-Terraform ל-GKE.
הוספה של מאגר צמתים מסוג Arm לאשכול GKE
אפשר להוסיף מאגר צמתים חדש לאשכול GKE Standard באמצעות ה-CLI של gcloud, 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 .
ברשימת האשכולות, לוחצים על שם האשכול שרוצים לשנות.
לוחצים על add_box הוספת מאגר צמתים.
מגדירים את מאגר הצמתים.
בוחרים מיקומי צמתים שבהם צמתי Arm זמינים.
- בקטע Node pool details (פרטי מאגר הצמתים), מסמנים את התיבה Specify node locations (ציון מיקומי צמתים).
- בוחרים את האזורים שבהם צמתי Arm זמינים.
כדי לבחור סוג מכונת Arm, בקטע המשנה Nodes, בקטע Configure node settings > Machine configuration > משפחת מכונות, בוחרים באפשרות 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