בדף הזה מוסבר איך ליצור אשכול אזורי רגיל עם התכונות שמופעלות כברירת מחדל ב-Google Kubernetes Engine (GKE). באשכולות של תחום מוגדר יש מופע אחד של רמת הבקרה בתחום אחד. בהתאם לדרישות הזמינות שלכם, אתם יכולים לבחור לפרוס את הצמתים של האשכול האזורי באזור אחד או בכמה אזורים.
הדף הזה מיועד לאופרטורים, למומחי Cloud Architect ולמפתחים שצריכים ליצור ולהגדיר אשכולות, ולפרוס עומסי עבודה ב-GKE. מידע נוסף על תפקידים נפוצים ומשימות לדוגמה שאנחנו מתייחסים אליהם ב Google Cloud תוכן זמין במאמר תפקידים נפוצים של משתמשי GKE ומשימות.
לפני שקוראים את הדף הזה, חשוב לוודא שמכירים את האפשרויות להגדרת אשכול.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את gcloud CLI. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
- מוודאים שיש לכם את ההרשאות המתאימות ליצירת אשכולות. לפחות, צריך להיות לכם תפקיד אדמין של אשכול Kubernetes Engine.
- אם רוצים לרשום את האשכול החדש לצי, צריך לוודא שיש לכם את ממשקי ה-API וההרשאות הנדרשים.
הגדרה של חשבונות שירות ב-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במספר הפרויקט מהשלב הקודם.
יצירת אשכול אזורי
המידע המינימלי שצריך לציין כשיוצרים אשכול חדש של אזורים הוא שם, פרויקט (בדרך כלל הפרויקט הנוכחי) ואזור (בדרך כלל מיקום ברירת המחדל של כלי שורת הפקודה), באמצעות הגדרות ברירת המחדל לכל שאר הערכים. עם זאת, יש עוד הגדרות אפשריות, שרק חלק מהן מתוארות בקטע הזה, וחלק מהן אי אפשר לשנות אחרי יצירת האשכול. חשוב להבין אילו הגדרות אי אפשר לשנות אחרי שיוצרים אשכול, ולבחור את ההגדרה הנכונה כשיוצרים אשכול כדי שלא תצטרכו ליצור אותו מחדש.
סקירה כללית של אפשרויות ההגדרה של אשכולות מופיעה במאמר מידע על אפשרויות ההגדרה של אשכולות, ורשימה מלאה של האפשרויות האפשריות מופיעה במדריכי העיון של gcloud container clusters create ו-Terraform google_container_cluster.
אפשר ליצור אשכול אזורי באמצעות gcloud CLI,Google Cloud המסוף או Terraform.
אם אתם מפתחים אפליקציות ל-GKE באמצעות Cloud Code ל-VS Code, כדאי לנסות ליצור אשכולות באמצעות Cloud Code.
gcloud
כדי ליצור אשכול אזורי באמצעות CLI של gcloud, משתמשים באחת מהפקודות הבאות.
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול החדש. -
CHANNEL: סוג ערוץ ההפצה, שיכול להיות אחד מאלה:rapid, regular, stableאוNone(הוצא משימוש). כברירת מחדל, האשכול רשום בערוץ ההפצהregular. -
CONTROL_PLANE_LOCATION: האזור של Compute Engine במישור הבקרה של האשכול. -
VERSION: הגרסה שרוצים לציין עבור האשכול. -
COMPUTE_ZONE,COMPUTE_ZONE1,[...]: האזורים שבהם נוצרים הצמתים. אפשר לציין כמה אזורים שרוצים עבור האשכול. כל האזורים צריכים להיות באותו אזור שבו נמצא מישור הבקרה של האשכול, שמוגדר באמצעות הדגל--location. במקרה של אשכולות אזוריים,--node-locationsצריך להכיל את האזור הראשי של האשכול.
מומלץ מאוד לציין חשבון שירות IAM עם הרשאות מינימליות שהצמתים יכולים להשתמש בו במקום בחשבון השירות שמוגדר כברירת מחדל של Compute Engine. במאמר שימוש בחשבון שירות עם הרשאות מינימליות מוסבר איך ליצור חשבון שירות עם הרשאות מינימליות.
כדי לציין חשבון שירות מותאם אישית ב-CLI של gcloud, מוסיפים את הדגל הבא לפקודה:
--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.comמחליפים את SERVICE_ACCOUNT_NAME בשם של חשבון השירות עם ההרשאות המינימליות.
שימוש בערוץ הפצה ספציפי:
כדי ליצור אשכול חדש באמצעות ערוץ הפצה ספציפי, מריצים את הפקודה הבאה:
gcloud container clusters create CLUSTER_NAME \
--release-channel CHANNEL \
--location CONTROL_PLANE_LOCATION \
--node-locations COMPUTE_ZONE,COMPUTE_ZONE1
שימוש בגרסה ספציפית:
כדי ליצור אשכול חדש באמצעות גרסה ספציפית של אשכול, מריצים את הפקודה הבאה:
gcloud container clusters create CLUSTER_NAME \
--cluster-version VERSION \
--location CONTROL_PLANE_LOCATION \
--node-locations COMPUTE_ZONE,COMPUTE_ZONE1
דוגמה
הפקודה הבאה יוצרת אשכול רב-אזורי בשם example-cluster, כאשר מישור הבקרה של האשכול ממוקם באזור us-central-a, ויש שלושה מיקומי צמתים. האשכול רשום בregularערוץ הפצה.
אם לא מציינים את הדגל --num-nodes, מספר הצמתים שנוצרים בכל אזור על ידי האשכול הוא שלוש כברירת מחדל. מכיוון שצוינו שלושה אזורים, הפקודה הזו יוצרת אשכול עם תשעה צמתים, שלושה צמתים בכל אחד מהאזורים us-central1-a, us-central1-b ו-us-central1-c.
gcloud container clusters create example-cluster \
--location us-central1-a \
--node-locations us-central1-a,us-central1-b,us-central1-c
המסוף
כדי ליצור אשכול אזורי באמצעות מסוף Google Cloud , מבצעים את המשימות הבאות:
נכנסים לדף Create a Kubernetes cluster במסוף Google Cloud .
בקטע Cluster basics (יסודות האשכול), מבצעים את הפעולות הבאות:
- מזינים את השם של האשכול.
- בשדה Location type, בוחרים באפשרות Zonal ואז בוחרים את האזור של האשכול.
- אם יוצרים אשכול רב-אזורי, מסמנים את התיבה Specify default node locations (ציון מיקומי צמתים שמוגדרים כברירת מחדל) ואז בוחרים אזורים נוספים שבהם רוצים שהמאגרי הצמתים יפעלו.
בוחרים ערוץ הפצה. אפשר גם לבחור באפשרות ללא ערוץ, אבל הגדרת האפשרות הזו הוצאה משימוש ותוסר. מידע נוסף זמין במאמר בנושא אשכולות שלא רשומים לערוץ הפצה.
אופציונלי: מציינים גרסת מישור בקרה מהרשימה הנפתחת Version.
אופציונלי: מגדירים הגדרות אחרות לאשכול החדש.
אופציונלי: אם רוצים לרשום את האשכול החדש לצי, עוברים לקטע רישום צי ופועלים לפי ההוראות במסוף Google Cloud בנושא יצירה ורישום של אשכול חדש כדי להשלים את רישום האשכול.
בחלונית הניווט, בקטע Node Pools (מאגרי צמתים), לוחצים על default-pool (מאגר ברירת המחדל).
בקטע Node pool details, ממלאים את הפרטים הבאים:
- מזינים שם למאגר הצמתים שמוגדר כברירת מחדל.
- אופציונלי: בוחרים את גרסת הצומת.
- מזינים את מספר הצמתים שרוצים ליצור באשכול. צריכה להיות לכם מכסת משאבים זמינה לצמתים ולמשאבים שלהם (למשל, מסלולים של חומת אש).
- אופציונלי: אפשר להשבית את השדרוגים האוטומטיים של הצמתים, אבל מומלץ לעיין בשיקולים לפני השבתת השדרוגים האוטומטיים של הצמתים לפני שבוחרים באפשרות הזו.
בחלונית הניווט, בקטע Node Pools (מאגרי צמתים), לוחצים על Nodes (צמתים).
ברשימה הנפתחת סוג התמונה, בוחרים באפשרות תמונת הצומת.
בוחרים את Machine configuration שיוגדר כברירת מחדל לשימוש במופעים. החיוב על כל סוג מכונה מתבצע באופן שונה. סוג המכונה שמוגדר כברירת מחדל הוא
e2-medium. למידע על תמחור של סוגי מכונות, אפשר לעיין בגיליון התמחור של סוגי מכונות.ברשימה הנפתחת סוג דיסק האתחול, בוחרים את סוג הדיסק.
מזינים את גודל דיסק האתחול.
אופציונלי: בחלונית הניווט, בקטע Node Pools, לוחצים על Security.
- אופציונלי, אפשר לציין חשבון שירות מותאם אישית ב-IAM עבור הצמתים:
- בדף הגדרות מתקדמות, מרחיבים את הקטע אבטחה.
- בתפריט Service account בוחרים את חשבון השירות המועדף.
מומלץ מאוד לציין חשבון שירות IAM עם הרשאות מינימליות שהצמתים יכולים להשתמש בו במקום בחשבון השירות שמוגדר כברירת מחדל של Compute Engine. במאמר שימוש בחשבון שירות עם הרשאות מינימליות מוסבר איך ליצור חשבון שירות עם הרשאות מינימליות.
לוחצים על יצירה.
Terraform
כדי ליצור אשכול אזורי עם מאגר צמתים באזור יחיד באמצעות Terraform, אפשר להיעזר בדוגמה הבאה:
כדי ליצור אשכול אזורי עם מאגר צמתים מרובה אזורים באמצעות Terraform, אפשר להיעזר בדוגמה הבאה:
מידע נוסף על שימוש ב-Terraform זמין במאמר תמיכה ב-Terraform ב-GKE.
אינטראקציה עם אשכול באמצעות kubectl
אחרי שיוצרים אשכול, צריך להגדיר את kubectl לפני שאפשר ליצור אינטראקציה עם האשכול משורת הפקודה.
תבניות של אשכולות
בעבר, GKE תמך בתבניות לאשכולות. התבניות האלה הוסרו ממסוף Google Cloud , אבל עדיין אפשר לגשת אליהן מהקישורים הבאים:
המאמרים הבאים
- מידע על אפשרויות ההגדרה של אשכולות שאפשר ליצור
- מידע על ארכיטקטורת אשכול GKE
- מידע נוסף על ניהול האשכולות
- איך מוחקים אשכולות
נסו בעצמכם
אנחנו ממליצים למשתמשים חדשים ב-Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של GKE בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300 $להרצה, לבדיקה ולפריסה של עומסי העבודה.
אני רוצה לנסות את GKE בחינם