איך מוסיפים תכונות חדשות באמצעות Kubernetes API
אשכולות GKE מורכבים ממישור בקרה ומצמתי עובדים. מישור הבקרה חושף את שרת ה-API, שחושף את Kubernetes API כדי שמשתמשי קצה, יחד עם רכיבים פנימיים וחיצוניים, יוכלו לתקשר. ממשק ה-API הזה מתפתח עם הזמן, ותכונות חדשות מוצגות בשלבי אלפא או בטא, ואז בסופו של דבר עוברות לזמינות כללית (GA) או יוצאות משימוש ומוסרות בגרסאות משניות חדשות יותר.
אפשר להשתמש בממשקי API בגרסת אלפא רק עם אשכולות אלפא, אבל אפשר להשתמש בממשקי API בגרסת בטא עם כל סוגי האשכולות של GKE. החל מגרסה 1.24 של Kubernetes, ממשקי API חדשים בגרסת בטא מושבתים כברירת מחדל באשכולות חדשים. באשכולות קיימים שנוצרו בגרסה קודמת ל-1.24, ממשקי ה-API הקיימים בגרסת בטא נשארים מופעלים. אי אפשר להשבית באשכולות קיימים ממשקי API בגרסת בטא שהופעלו אוטומטית (הושקו בגרסה קודמת ל-1.24) או ממשקי API בגרסת בטא שהופעלו ידנית (הושקו בגרסה 1.24 ואילך). בכל האשכולות, ממשקי API קיימים בגרסת בטא שהושקו לפני גרסה 1.24 ממשיכים להיות מופעלים כברירת מחדל, וגם גרסאות חדשות של ממשקי API קיימים בגרסת בטא ממשיכות להיות מופעלות כברירת מחדל.
לדוגמה, אם ה-API v1beta1 הושק ב-Kubernetes בגרסה 1.22, ואז הושקה גרסה חדשה של ה-API הזה בגרסת בטא, כמו v1beta3, ב-Kubernetes בגרסה 1.25, ה-API מופעל באופן אוטומטי. הסיבה לכך היא שמדובר בגרסה חדשה של API קיים בגרסת בטא, ולא ב-API חדש לגמרי בגרסת בטא. עם זאת, API חדש בגרסת בטא עם הגרסה v1beta1 שהוצגה ב-Kubernetes גרסה 1.24 ואילך מושבת כברירת מחדל.
כדי להשתמש בממשקי API בגרסת בטא שהושקו בגרסה 1.24 ואילך, צריך להגדיר ממשקי API בגרסת בטא לכל משאב בכל אשכול. אפשר להפעיל ממשקי API כשיוצרים אשכול או באשכול קיים. כדי לראות אילו ממשקי API בגרסת בטא זמינים לגרסת המשנה של האשכול, אפשר לעיין בממשקי API בגרסת בטא שזמינים.
אחרי שמפעילים ממשק API בגרסת בטא, הוא נשאר פעיל עד שממשק ה-API בגרסת הבטא יוצא משימוש והאשכול משודרג לגרסה המשנית שבה ממשק ה-API מוסר. כדי לראות אילו ממשקי API בגרסת בטא מופעלים באשכול, אפשר לעיין במאמר בנושא בדיקה של ממשקי API בגרסת בטא שמופעלים.
ממשקי API בגרסת בטא של Kubernetes ושערי תכונות של Kubernetes
שערי תכונות הם מנגנון נפרד להפעלת תכונות מממשקי API של Kubernetes, והם מנוהלים בצורה שונה על ידי אשכולות GKE. חלק מה-API של Kubernetes וחלק מהתכונות של Kubernetes פועלים יחד. חשוב לוודא שאתם מבינים את הקשר בין שערים ספציפיים לתכונות לבין ממשקי API. מידע נוסף זמין במאמר בנושא Feature gates.
ממשקי API זמינים בגרסת בטא
אתם יכולים להפעיל קבוצת משנה של ממשקי Kubernetes beta API באשכולות GKE. ממשקי API אחרים בגרסת בטא לא זמינים מהסיבות הבאות:
- ה-API בגרסת הבטא מסתמך על תכונות Kubernetes שאינן זמינות ב-GA.
- ממשק ה-API בגרסת הבטא לא מאובטח.
- ממשק ה-API בגרסת בטא לא תואם לטייס אוטומטי.
בטבלה הבאה מפורטים ממשקי ה-API בגרסת בטא וגרסת המשנה התואמת שבה הם הוצגו:
| גרסת Kubernetes | ממשקי API בגרסת בטא שנוספו בגרסה המשנית הזו של Kubernetes | זמין ב-GKE | הערות |
|---|---|---|---|
| 1.32 |
|
|
צריך להפעיל את כל ממשקי ה-API שמופיעים ברשימה |
| 1.31 |
|
|
צריך להפעיל את שני ממשקי ה-API |
| 1.29 |
|
|
חובה להפעיל את שני ממשקי ה-API בו-זמנית. ההגדרה הזו מפעילה את תכונת הבטא Validating Admission Policy. |
| 1.28 |
|
|
|
| 1.27 |
|
|
נקודות שכדאי לשים לב אליהן לפני שמשתמשים בממשקי API בגרסת בטא
ממשקי API בגרסת בטא של Kubernetes כפופים למדיניות ההוצאה משימוש של Kubernetes. כשמוציאים משימוש API בגרסת בטא, צריך להפסיק את השימוש בו. מידע נוסף זמין במאמר הוצאה משימוש של ממשקי API בגרסת בטא.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את gcloud CLI. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
הגדרת ממשקי API בגרסת בטא
ממשקי API בגרסת בטא מופעלים לכל משאב בכל אשכול. אפשר להפעיל ממשקי API כשיוצרים אשכול או באשכול קיים.
כדי לכלול ברשימה משאב של API בגרסת בטא בפקודות האלה, משתמשים בייצוג {group}/{version}/{resource}. הגרסה חייבת להיות גרסת בטא. דוגמה לייצוג תקין כזה היא authentication.k8s.io/v1beta1/selfsubjectreviews.
בפקודות שבקטע הבא, מחליפים את המשתנים הבאים:
-
CLUSTER_NAME: השם של האשכול שרוצים לעדכן. -
LIST_OF_APIS: רשימה מופרדת בפסיקים של ממשקי ה-API בגרסת בטא שרוצים להפעיל. -
CONTROL_PLANE_LOCATION: המיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור זמין לאשכולות אזוריים.
יצירת אשכול חדש עם ממשקי API בגרסת בטא
יוצרים אשכול חדש עם רשימה של ממשקי API בגרסת בטא שמופעלים:
gcloud container clusters create-auto CLUSTER_NAME \
--enable-kubernetes-unstable-apis=LIST_OF_APIS \
--location=CONTROL_PLANE_LOCATION
הפעלת ממשקי API בגרסת בטא באשכול קיים
כדי להפעיל רשימה של ממשקי API בגרסת בטא באשכול קיים:
gcloud container clusters update CLUSTER_NAME \
--enable-kubernetes-unstable-apis=LIST_OF_APIS \
--location=CONTROL_PLANE_LOCATION
מוודאים שהצמתים משתמשים בממשקי ה-API החדשים בגרסת בטא
כדי להשתמש בחלק מתכונות הבטא, צריך להפעיל את התכונה גם ב-kubelet שפועל בצמתי העובדים.
כדי להשתמש בתכונות החדשות של API בגרסת בטא עם עומסי עבודה שפועלים בצמתי העובדים, צריך ש-GKE יחיל את השינוי על הצמתים:
- בצמתים במאגרי צמתים רגילים חדשים ובקבוצות של צמתים ב-Autopilot, GKE מפעיל את ממשקי ה-API בגרסת בטא.
- בצמתים חדשים וקיימים במאגרי צמתים קיימים מסוג Standard, או בקבוצות קיימות של צמתים ב-Autopilot, GKE מחיל את השינוי כשהצמתים נוצרים מחדש במהלך שדרוגי צמתים או סוגים אחרים של עדכוני צמתים. כדי להחיל את השינוי באופן מיידי על צמתים קיימים במאגר צמתים של אשכול רגיל, אפשר לשדרג ידנית את מאגר הצמתים לגרסה מאוחרת יותר של GKE. ביצוע שדרוג במקום לא יחיל את השינוי.
השבתת ממשקי API בגרסת בטא באשכול קיים
אי אפשר להשבית ממשקי API בגרסת בטא שכבר הופעלו באשכול. ממשקי API בגרסת בטא נשארים זמינים עד שהם מוצאים משימוש והאשכול משודרג לגרסת המשנה שבה ה-API מוסר. מידע נוסף זמין במאמר הוצאה משימוש של ממשקי API בגרסת בטא.
בדיקה של ממשקי API בגרסת בטא שמופעלים
כדי לבדוק אילו ממשקי API בגרסת בטא מופעלים באשכול GKE:
gcloud container clusters describe CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--format="value(enableK8sBetaApis.enabledApis)"
הוצאה משימוש של ממשקי API בגרסת בטא
אחרי שמפעילים ממשק API בגרסת בטא, הוא נשאר פעיל עד שממשק ה-API בגרסת הבטא יוצא משימוש והאשכול משודרג לגרסה המשנית שבה ה-API מוסר.
ממשקי API בגרסת בטא זמינים בדרך כלל לשלוש גרסאות משניות לפני שהם מוצאים משימוש לטובת גרסת בטא חדשה, גרסה יציבה או ללא תחליף. גרסאות בטא של ממשקי API מוסרות שלוש גרסאות משניות אחרי שהן מוצאות משימוש. אם אתם משתמשים ב-API בגרסת בטא שהוצא משימוש ויוסר בגרסה משנית של Kubernetes שצפויה לצאת, אתם צריכים לעבור ל-API נתמך כדי שתוכלו לשדרג את האשכול לגרסה המשנית שבה ה-API בגרסת הבטא יוסר. מידע נוסף זמין במאמר איך הוצאה משימוש של Kubernetes פועלת עם GKE.
ב-GKE התהליך הזה פשוט יותר כי המערכת מנסה לזהות את השימוש בממשקי API של Kubernetes שהוצאו משימוש. אם GKE מזהה שימוש ב-API שהוצא משימוש, הוא משהה את השדרוגים האוטומטיים לגרסה המשנית שבה ה-API הזה מוסר. GKE גם משתף תובנות והמלצות לגבי הוצאה משימוש כדי להודיע לכם על השימוש ב-API שהוצא משימוש באשכול שלכם, כך שתוכלו לבצע פעולות שיאפשרו את המשך השדרוגים. מידע נוסף זמין במאמר הערכה של החשיפה להוצאה משימוש של Kubernetes וצמצום שלה.
בטבלה של הוצאה משימוש של Kubernetes API מפורטת רשימה מלאה של ממשקי API שהוצאו משימוש, ומוסבר אם GKE מזהה שימוש בהם.