איך מוסיפים תכונות חדשות באמצעות Kubernetes API
אשכולות GKE מורכבים ממישור בקרה ומצמתי עובד. מישור הבקרה חושף את שרת ה-API, שחושף את Kubernetes API כדי שמשתמשי קצה, יחד עם רכיבים פנימיים וחיצוניים, יוכלו לתקשר. ממשק ה-API הזה מתפתח עם הזמן, ותכונות חדשות מוצגות בשלבי אלפא או בטא, ואז בסופו של דבר הן עוברות לזמינות כללית (GA) או שהן מוצאות משימוש ומוסרות בגרסאות משניות חדשות יותר.
אפשר להשתמש בממשקי API בגרסת אלפא רק עם אשכולות אלפא, אבל אפשר להשתמש בממשקי API בגרסת בטא עם כל סוגי האשכולות של GKE. החל מ-Kubernetes בגרסה 1.24, ממשקי API חדשים בגרסת בטא מושבתים כברירת מחדל באשכולות חדשים. באשכולות קיימים שנוצרו בגרסה קודמת ל-1.24, ממשקי ה-API הקיימים בגרסת בטא נשארים מופעלים. אי אפשר להשבית באשכולות קיימים ממשקי API בגרסת בטא שהופעלו אוטומטית (הוצגו בגרסה קודמת ל-1.24) או שהופעלו ידנית (הוצגו בגרסה 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
שערי תכונות הם מנגנון נפרד להפעלת תכונות מ-Kubernetes APIs, והם מנוהלים בצורה שונה על ידי אשכולות GKE. חלק מה-API של Kubernetes ומהתכונות של Kubernetes פועלים יחד. חשוב להבין את הקשר בין שערים ספציפיים לתכונות לבין ממשקי API. מידע נוסף זמין במאמר בנושא Feature gates.
ממשקי API זמינים בגרסת בטא
אתם יכולים להפעיל קבוצת משנה של ממשקי Kubernetes beta API באשכולות GKE. ממשקי API אחרים בגרסת בטא לא זמינים מהסיבות הבאות:
- ה-API בגרסת הבטא מסתמך על תכונות Kubernetes שאינן זמינות לכלל המשתמשים.
- ממשק ה-API בגרסת הבטא לא מאובטח.
- ממשק ה-API בגרסת בטא לא תואם ל-Autopilot.
בטבלה הבאה מפורטים ממשקי ה-API בגרסת בטא וגרסת המשנה התואמת שבה הם הוצגו:
| גרסת Kubernetes | ממשקי API בגרסת בטא שנוספו עם הגרסה המשנית הזו של Kubernetes | זמין ב-GKE | הערות |
|---|---|---|---|
| 1.32 |
|
|
צריך להפעיל את כל ממשקי ה-API שמופיעים ברשימה |
| 1.31 |
|
|
צריך להפעיל את שני ממשקי ה-API, |
| 1.29 |
|
|
חובה להפעיל את שני ממשקי ה-API בו-זמנית. המדיניות הזו מפעילה את תכונת הבטא Validating Admission Policy. |
| 1.28 |
|
|
|
| 1.27 |
|
|
נקודות שכדאי לשים לב אליהן לפני שמשתמשים בממשקי API בגרסת בטא
ממשקי Kubernetes beta API כפופים למדיניות ההוצאה משימוש של Kubernetes. כשמוציאים משימוש API בגרסת בטא, צריך להפסיק את השימוש בו. מידע נוסף זמין במאמר הוצאה משימוש של ממשקי API בגרסת בטא.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- אם רוצים להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את ה-CLI של gcloud. אם התקנתם בעבר את ה-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 מזהה שימוש בהם.