בדף הזה מוסבר איך ליצור אשכול אזורי רגיל עם התכונות שמופעלות כברירת מחדל ב-Google Kubernetes Engine (GKE). באשכולות אזוריים יש מופע אחד של מישור הבקרה בתחום אחד. בהתאם לדרישות הזמינות שלכם, אתם יכולים לבחור לפזר את הצמתים של האשכול האזורי באזור אחד או בכמה אזורים.
הדף הזה מיועד לאופרטורים, לאדריכלי ענן ולמפתחים שצריכים ליצור ולהגדיר אשכולות, ולפרוס עומסי עבודה ב-GKE. מידע נוסף על תפקידים נפוצים ודוגמאות למשימות שאנחנו מתייחסים אליהן ב Google Cloud תוכן, זמין במאמר תפקידים נפוצים של משתמשי GKE ומשימות.
לפני שקוראים את הדף הזה, חשוב להכיר את האפשרויות להגדרת אשכול.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-Google Cloud CLI למשימה הזו, מתקינים ואז מאתחלים את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שבגרסאות קודמות של ה-CLI של gcloud אי אפשר להריץ את הפקודות שבמסמך הזה.
- מוודאים שיש לכם את ההרשאות המתאימות ליצירת אשכולות. לפחות, צריך להיות לכם תפקיד אדמין של אשכול Kubernetes Engine.
- אם רוצים לרשום את האשכול החדש לFleet, צריך לוודא שיש לכם את ממשקי ה-API וההרשאות הנדרשים.
הגדרת חשבונות שירות של IAM ל-GKE
GKE משתמש בחשבונות שירות של IAM שמצורפים לצמתים כדי להריץ משימות מערכת כמו רישום ביומן ומעקב. לכל הפחות, לחשבונות השירות של הצמתים צריך להיות התפקיד חשבון השירות שמוגדר כברירת מחדל לצומת ב-Kubernetes Engine (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.
אפשר ליצור אשכול אזורי באמצעות ה-CLI של gcloud,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.
אופציונלי: קובעים הגדרות אחרות לאשכול החדש.
אופציונלי: אם רוצים לרשום את האשכול החדש לFleet, עוברים לקטע הגדרות מתקדמות ופועלים לפי Google Cloud ההוראות במסוף בנושא יצירה ורישום של אשכול חדש כדי להשלים את רישום האשכול.
בחלונית הניווט, בקטע מאגרי צמתים, לוחצים על default-pool.
בקטע פרטי מאגר הצמתים, מבצעים את הפעולות הבאות:
- מזינים שם למאגר הצמתים שמוגדר כברירת מחדל.
- אופציונלי: בוחרים את גרסת הצומת.
- מזינים את מספר הצמתים שרוצים ליצור באשכול. צריכה להיות לכם מכסת משאבים זמינה לצמתים ולמשאבים שלהם (כמו מסלולי חומת אש).
- אופציונלי: אפשר להשבית את השדרוגים האוטומטיים של הצמתים, אבל מומלץ לעיין בשיקולים לפני השבתת השדרוגים האוטומטיים של הצמתים לפני שבוחרים באפשרות הזו.
בחלונית הניווט, בקטע Node Pools (מאגרי צמתים), לוחצים על Nodes (צמתים).
בתפריט הנפתח סוג התמונה, בוחרים באפשרות תמונה של הצומת.
בוחרים את Machine configuration שיוגדר כברירת המחדל למכונות. החיוב על כל סוג מכונה מתבצע בצורה שונה. סוג המכונה שמוגדר כברירת מחדל הוא
e2-medium. למידע על תמחור של סוגי מכונות, אפשר לעיין בגיליון המחירים של סוגי מכונות.מהרשימה הנפתחת Boot disk type, בוחרים את סוג דיסק האתחול.
מזינים את גודל דיסק האתחול.
אופציונלי: בחלונית הניווט, בקטע מאגרי צמתים, לוחצים על Security.
- אופציונלי, אפשר לציין חשבון שירות מותאם אישית ב-IAM עבור הצמתים:
- בדף הגדרות מתקדמות, מרחיבים את הקטע אבטחה.
- בתפריט Service account בוחרים את חשבון השירות המועדף.
מומלץ מאוד לציין חשבון שירות IAM עם הרשאות מינימליות, שהצמתים יוכלו להשתמש בו במקום בחשבון השירות שמוגדר כברירת מחדל של Compute Engine. במאמר שימוש בחשבון שירות עם הרשאות מינימליות מוסבר איך יוצרים חשבון שירות עם הרשאות מינימליות.
לוחצים על יצירה.
Terraform
כדי ליצור אשכול אזורי עם מאגר צמתים באזור יחיד באמצעות Terraform, אפשר להיעזר בדוגמה הבאה:
כדי ליצור אשכול אזורי עם מאגר צמתים מרובה אזורים באמצעות Terraform, אפשר לעיין בדוגמה הבאה:
מידע נוסף על שימוש ב-Terraform זמין במאמר תמיכה ב-Terraform ב-GKE.
אינטראקציה עם אשכול באמצעות kubectl
אחרי שיוצרים אשכול, צריך להגדיר את kubectl לפני שאפשר ליצור אינטראקציה עם האשכול משורת הפקודה.
תבניות של אשכולות
בעבר, GKE תמך בתבניות לאשכולות. התבניות האלה הוסרו ממסוף Google Cloud , אבל עדיין אפשר לגשת אליהן מהקישורים הבאים:
המאמרים הבאים
- מידע על אפשרויות ההגדרה של אשכולות שאפשר ליצור.
- מידע על הארכיטקטורה של אשכול GKE
- מידע נוסף על ניהול אשכולות
- איך מוחקים אשכולות
נסו בעצמכם
אנחנו ממליצים למשתמשים חדשים ב-Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של GKE בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300 $להרצה, לבדיקה ולפריסה של עומסי העבודה.
אני רוצה לנסות את GKE בחינם