במאמר הזה נסביר איך לנהל את האשכולות ב-Google Kubernetes Engine (GKE). מידע על אופן הפעולה של אשכולות זמין במאמר בנושא ארכיטקטורת אשכולים.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז לאתחל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
הצגת האשכולות
gcloud
כדי לראות אשכול ספציפי, מריצים את הפקודה הבאה:
gcloud container clusters describe CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATIONמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול. -
CONTROL_PLANE_LOCATION: המיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור לאשכולות אזוריים.
-
כדי להציג את כל האשכולות בפרויקט בכל אזור או תחום, מריצים את הפקודה הבאה:
gcloud container clusters listכדי להציג את רשימת האשכולות שנמצאים באזור או בתחום מסוים, מריצים את הפקודה הבאה:
gcloud container clusters list \ --location=CONTROL_PLANE_LOCATION
המסוף
כדי לראות את האשכולות, נכנסים לדף Google Kubernetes Engine במסוף Cloud de Confiance .
מעבר אל Google Kubernetes Engine
כדי לראות מידע נוסף על אשכול, בוחרים את האשכול מהרשימה.
הגדרת אשכול ברירת מחדל ל-kubectl
אם יש לכם כמה אשכולות, אתם יכולים להגדיר אשכול ברירת מחדל לכלי שורת הפקודה kubectl.
מידע נוסף זמין במאמר בנושא הגדרת אשכול ברירת מחדל לפקודות kubectl.
הגדרת אשכול ברירת מחדל ל-gcloud
כדי להגדיר אשכול ברירת מחדל לפקודות gcloud, מריצים את הפקודה הבאה:
gcloud config set container/cluster CLUSTER_NAME
מחליפים את CLUSTER_NAME בשם של האשכול.
שדרוג אשכולות
כברירת מחדל, אשכולות GKE משודרגים באופן אוטומטי. עם זאת, אתם יכולים לשדרג בעצמכם את אשכולות Standard. מידע נוסף זמין במאמר שדרוג ידני של אשכול.
למידע נוסף על שדרוג אשכולות, אפשר לעיין במאמר בנושא שיטות מומלצות לשדרוג אשכולות.
הוספה או הסרה של אזורים באשכול רגיל
בקטעים הבאים מוסבר איך להוסיף או להסיר אזורים של אשכולות. כל האזורים חייבים להיות באזור של האשכול.
שינוי אזורים באשכולות אזוריים
במקרה של אשכולות אזוריים קיימים, אפשר להוסיף או להסיר אזורים.
gcloud
כדי להוסיף או להסיר אזורים לאשכול אזורי, משתמשים בפקודה gcloud container
clusters update:
gcloud container clusters update CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--node-locations COMPUTE_ZONE1,COMPUTE_ZONE2
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם שתבחרו לאשכול. -
CONTROL_PLANE_LOCATION: האזור ב-Compute Engine של מישור הבקרה של האשכול. -
COMPUTE_ZONE1,COMPUTE_ZONE2,[...]: האזורים שבהם נוצרים הצמתים. אתם יכולים לציין כמה אזורים שאתם צריכים לאשכול. כל האזורים צריכים להיות באותו אזור שבו נמצא מישור הבקרה של האשכול, שמוגדר באמצעות הדגל--location. במקרה של אשכולות אזוריים,--node-locationsחייב להכיל את האזור הראשי של האשכול.
לדוגמה, הפקודה example-cluster פועלת ב-us-central1-a.
כדי להוסיף עוד שני אזורים לאשכול, מריצים את הפקודה הבאה:
gcloud container clusters update example-cluster \
--location us-central1-a
--node-locations us-central1-a,us-central1-b,us-central1-c
דוגמה נוספת: example-cluster פועל ב-us-central1-a, ב-us-central1-b וב-us-central1-c. אם רוצים שהאשכול יפעל רק ב-us-central1-a וב-us-central1-b, מריצים את הפקודה הבאה:
gcloud container clusters update example-cluster \
--location us-central1-a \
--node-locations us-central1-a,us-central1-b
המסוף
כדי להוסיף או להסיר אזורים באשכול קיים, מבצעים את השלבים הבאים:
נכנסים לדף Google Kubernetes Engine במסוף Cloud de Confiance .
לצד האשכול שרוצים לערוך, לוחצים על more_vert Actions (פעולות) ואז על edit Edit (עריכה).
בכרטיסייה Details, בשדה Default node zones לוחצים על edit Edit node pools.
בוחרים את האזורים הרצויים ושומרים את השינויים.
שינוי האזורים של אשכולות אזוריים
בשלב הזה, אפשר לשנות את האזורים של אשכולות אזוריים קיימים רק באמצעות הפקודה gcloud.
כדי להוסיף או להסיר אזורים לאשכול אזורי, משתמשים בפקודה gcloud container
clusters update עם הדגל --node-locations:
gcloud container clusters update CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--node-locations COMPUTE_ZONE1,COMPUTE_ZONE2
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול. -
CONTROL_PLANE_LOCATION: האזור של Compute Engine במישור הבקרה של האשכול. -
COMPUTE_ZONE1,COMPUTE_ZONE2,[...]: אזור מישור הבקרה של האזורים שבו נוצרים הצמתים. התחומים(zones) צריכים להיות באותוCONTROL_PLANE_LOCATIONכמו מישורי הבקרה של האשכול, שמוגדרים באמצעות הדגל--location.
לדוגמה, example-cluster פועל ב-us-central1-a וב-us-central1-b. כדי להוסיף את us-central1-c, מריצים את הפקודה הבאה:
gcloud container clusters update example-cluster \
--location us-central1 \
--node-locations us-central1-a,us-central1-b,us-central1-c
דוגמה נוספת: example-cluster פועל ב-us-central1-a, ב-us-central1-b וב-us-central1-c. אם רוצים שהאשכול יפעל רק ב-us-central1-a וב-us-central1-b, מריצים את הפקודה הבאה:
gcloud container clusters update example-cluster \
--location us-central1 \
--node-locations us-central1-a,us-central1-b
שינוי הגודל של אשכולות
אפשר לשנות את הגודל של אשכול Standard כדי להגדיל או להקטין את מספר הצמתים שבו. לדוגמה, אם אתם רוצים להפסיק את צריכת המשאבים של האשכול בלי למחוק אותו, אתם יכולים להקטין את מספר הצמתים לאפס. מידע נוסף על שינוי הגודל זמין במאמר שינוי הגודל של אשכול.
הגודל של אשכולות Autopilot נקבע באופן אוטומטי על סמך המפרטים של ה-Pod, כך שאתם לא צריכים לדאוג לגבי שינוי הגודל של האשכול. לדוגמה, אם תשנו את מספר הרפליקות של ה-Pod או את המשאבים שהוא מבקש, האשכול יוגדל או יוקטן בהתאם.
אם אתם רוצים דרך יעילה יותר לבצע אופטימיזציה של האשכולות, אתם יכולים גם להשתמש ב-התאמה אנכית של קבוצות Pod לעומס (VPA). המידרוג האוטומטי יכול להמליץ על ערכים לבקשות ולמגבלות של מעבד (CPU) וזיכרון, או לעדכן את הערכים באופן אוטומטי.
מחיקת אשכולות
כשצריך, אפשר למחוק אשכול. מידע נוסף מופיע במאמר בנושא מחיקת אשכול.
שימוש במדיניות דחייה כדי למנוע מחיקה של אשכולות
אתם יכולים להשתמש בכללי מדיניות הדחייה של IAM כדי למנוע מחיקה של אשכולות קריטיים מסוימים, בלי קשר לחשבון המשתמש שמנסה למחוק אותם. כדי לטרגט אשכולות ספציפיים במדיניות דחייה, מוסיפים תג לאשכולות האלה. לאחר מכן, משתמשים בתנאי דחייה כדי להחיל את מדיניות הדחייה רק על אשכולות שיש להם את התג הזה.
כדי להגן על אשכול ספציפי מפני מחיקה, פועלים לפי השלבים הבאים:
יוצרים ומגדירים מפתח תג כדי לזהות אשכולות מוגנים. לדוגמה, אפשר ליצור מפתח תג בשם
do_not_delete.כדי ליצור מדיניות דחייה של IAM, בוחרים באחת מהאפשרויות הבאות:
המסוף
במסוף Cloud de Confiance , נכנסים לכרטיסייה Deny בדף IAM.
לוחצים על Create deny policy (יצירת מדיניות של דחיית גישה). ייפתח הדף Create deny policy.
בשדה ID (מזהה), מציינים מזהה ייחודי שלא ניתן לשינוי למדיניות הדחייה.
בקטע New deny rule (כלל חדש של דחייה), מבצעים את הפעולות הבאות:
בשדה Denied principals, מציינים
principalSet://goog/public:all, שכולל כל חשבון משתמש.בקטע Denied permissions, ברשימה הנפתחת Permission 1, מאתרים את ההרשאה
container.googleapis.com/clusters.deleteובוחרים אותה.לוחצים על Add denial condition. נפתחת החלונית הוספת תנאי דחייה.
מציינים שם אינפורמטיבי לתנאי, למשל
Cluster has the do_not_delete tag.בכרטיסייה Condition builder (כלי ליצירת תנאים), בתפריט הנפתח Condition type 1 (סוג תנאי 1), בוחרים באפשרות Tag (תג).
ברשימה הנפתחת Operator, בוחרים באפשרות Has key.
ברשימה הנפתחת Key path, בוחרים את מפתח התג שהוספתם לאשכול, כמו
do_not_delete.לוחצים על Save.
לוחצים על יצירה.
gcloud
יוצרים קובץ JSON שמכיל את מדיניות הדחייה הבאה:
{ "displayName": "Prevent cluster deletion based on tag", "rules": [ { "description": "Prevent cluster deletion based on tag", "deniedPrincipals": [ "principalSet://goog/public:all" ], "deniedPermissions": [ "container.googleapis.com/clusters.delete" ], "denialCondition": { "title": "Cluster has the do_not_delete tag", "expression": "resource.hasTagKey('TAG_KEY_NAME')" } } ] }מחליפים את
TAG_KEY_NAMEבנתיב למפתח התג שיצרתם.יוצרים את מדיניות הדחייה באמצעות הפקודה
gcloud iam policies create:gcloud iam policies create POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies --policy-file=POLICY_FILEמחליפים את מה שכתוב בשדות הבאים:
-
POLICY_ID: מזהה של מדיניות הדחייה. -
ATTACHMENT_POINT: הארגון, התיקייה או הפרויקט שאליהם רוצים לצרף את מדיניות הדחייה. לדוגמה, אם מצרפים את מדיניות הדחייה לתיקייה, המדיניות חלה על אשכולות בכל פרויקט בתיקייה הזו. מידע נוסף זמין במאמר נקודת חיבור. -
POLICY_FILE: הנתיב לקובץ ה-JSON שיצרתם בשלב הקודם.
-
אחרי שיוצרים את מדיניות הדחייה, אף אחד לא יכול למחוק אשכול עם מפתח התג שצוין בתנאי הדחייה. כל ניסיון למחוק את האשכול ייכשל עם הודעת השגיאה Permission denied. כדי לאפשר מחיקה של אשכול, צריך לבטל את הצירוף של מפתח התג הזה לאשכול.
הוספת אשכולות לצי
אם הארגון שלכם משתמש בכמה אשכולות, אתם יכולים להוסיף את האשכולות לצי – קיבוץ לוגי של אשכולות Kubernetes – כדי לפשט את הניהול של כמה אשכולות. יצירת צי עוזרת לארגון לשדרג את הניהול מאשכולות נפרדים לקבוצות שלמות של אשכולות, ומאפשרת להשתמש בתכונות שמותאמות לציים, כמו Multi Cluster Ingress, סנכרון תצורות ו-Policy Controller.
אפשר להוסיף אשכולות GKE ל-fleet באמצעות מסוףCloud de Confiance , ה-CLI של gcloud או באופן הצהרתי באמצעות Terraform או Config Connector.
במאמר ניהול של Fleet תוכלו לקרוא מידע נוסף על האופן שבו פועלים ציים, ובמאמר יצירת ציים כדי לפשט את הניהול של כמה אשכולות תוכלו לקרוא מידע נוסף על יצירת ציים.
המאמרים הבאים
- מידע ולמידה על אופן הפעולה של אשכולות
- מידע נוסף על הוספה וניהול של מאגרי צמתים באשכולות
- שיטות מומלצות לשדרוג אשכולות.