בדף הזה מוסבר איך לצפות בתובנות ובהמלצות לגבי הוצאה משימוש של Kubernetes באשכולות Google Kubernetes Engine (GKE). מידע נוסף על ניהול הוצאה משימוש של Kubernetes באמצעות GKE זמין במאמר בנושא הוצאה משימוש של תכונות וממשקי API.
מהן תובנות והמלצות לגבי הוצאה משימוש?
כש-GKE מזהה שאשכול משתמש בתכונה או ב-API של Kubernetes שהוצאו משימוש ויוסרו בגרסה משנית קרובה, קורה הדבר הבא:
- השדרוג האוטומטי לגרסת המשנה הבאה מושהה. מידע נוסף על אופן הפעולה של התכונה הזו זמין במאמר מה קורה כש-GKE משהה שדרוגים אוטומטיים.
- נוצרת תובנה והמלצה כדי שתוכלו להעריך את החשיפה של האשכול להוצאה משימוש ולצמצם אותה.
אפשר לקבל תובנות והמלצות לגבי הוצאה משימוש דרך Recommender, שירות שמספק תובנות והמלצות לשימוש במשאבים ב-Cloud de Confiance by S3NS. במאמר אופטימיזציה של השימוש ב-GKE באמצעות תובנות והמלצות תוכלו לקרוא מידע נוסף על אופן הפעולה של שירות ההמלצות עם GKE.
לנושא ההוצאה משימוש עם שירות ההמלצות:
- תובנה מסבירה שהאשכול משתמש בתכונה או ב-API שהוצאו משימוש ויוסרו בגרסה משנית קרובה.
- המלצה מספקת הנחיות לגבי הפעולות שצריך לבצע כדי לצמצם את החשיפה של האשכול להוצאה משימוש.
לדוגמה, יכול להיות שתקבלו תובנה שמסבירה שהאשכול שלכם משתמש ב-API בגרסת בטא שהוצא משימוש ויוסר בגרסה המשנית הבאה. בהמלצה מוסבר שצריך להעביר את עומסי העבודה משימוש בממשקי API בגרסת בטא לשימוש בממשקי API בגרסה 1. כל המלצה כוללת הפניה למדריך העברה לתכונה או ל-API שהוצאו משימוש. מדריך ההעברה הזה זמין גם בטבלה המתאימה להוצאה משימוש של Kubernetes.
כש-GKE יוצר תובנה והמלצה, הוא מתייחס לשימוש בתכונות או בממשקי API של Kubernetes שהוצאו משימוש בסוג משנה מסוים של תובנה עבור אשכול אחד בפרויקט. לדוגמה, אם סוכני משתמש קוראים לאחד מממשקי ה-API שמופיעים בסוג המשנה DEPRECATION_K8S_1_22_V1BETA1_API, יופיעו תובנה והמלצה להעביר את האשכול הזה משימוש בממשקי ה-API האלה. אם גם אשכול אחר משתמש בממשקי ה-API האלה, GKE יוצר עוד תובנה והמלצה.
שימוש בתכונות ובממשקי API של Kubernetes שהוצאו משימוש שזוהה על ידי GKE
| הפסקת תמיכה | הוסרה בגרסת GKE | סוג משנה של תובנה |
|---|---|---|
| זמני קצובים לתפוגה של בדיקות הפעלה | 1.35 | EXEC_PROBE_TIMEOUT |
| תכונות של Containerd 1.7 | 1.33 | DEPRECATION_CONTAINERD_V1_SCHEMA_IMAGES,DEPRECATION_CONTAINERD_V1ALPHA2_CRI_API |
| APIs שהוצאו משימוש ב-Kubernetes 1.32 | 1.32 | DEPRECATION_K8S_1_32_API |
| אישורי TLS שחתומים באמצעות אלגוריתם SHA-1 | 1.29 | DEPRECATION_K8S_SHA_1_CERTIFICATE |
| APIs שהוצאו משימוש ב-Kubernetes 1.29 | 1.29 | DEPRECATION_K8S_1_29_API |
| Kubernetes 1.27 deprecated APIs | 1.27 | DEPRECATION_K8S_1_27_API |
| ממשקי API שהוצאו משימוש ב-Kubernetes 1.26 | 1.26 | DEPRECATION_K8S_1_26_API |
| Kubernetes 1.25 deprecated APIs | 1.25 | DEPRECATION_K8S_1_25_API |
| PodSecurityPolicy | 1.25 | DEPRECATION_K8S_1_25_PODSECURITYPOLICY |
| תמונות של צמתים מבוססות Docker | 1.24 | DEPRECATION_K8S_1_24_DOCKERSHIM |
| שדה השם הנפוץ של X.509 באישורים של webhook | 1.23 | DEPRECATION_K8S_1_23_CERTIFICATE |
| Kubernetes 1.22 deprecated APIs,
Kubernetes Ingress Beta APIs removed in GKE 1.23 |
1.22, 1.23 | DEPRECATION_K8S_1_22_V1BETA1_API |
חשוב לזכור שבמקרה של הוצאות משימוש עתידיות, צריך להעריך באופן עצמאי את החשיפה של סביבת האשכולות ולטפל בכל הבעיות.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז לאתחל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
התפקידים הנדרשים
מוודאים שיש לכם את ההרשאות הנדרשות לתובנות ולהמלצות לגבי Kubernetes, באמצעות תפקידים בסיסיים או תפקידים מוגדרים מראש:
כדי לראות תובנות והמלצות, צריך להקצות לכם אחד מהתפקידים הבאים:
צפייה במצב של תובנות והמלצות ועדכון שלו (לדוגמה, סגירת המלצה):
צפייה בתובנות ובהמלצות
אפשר לראות את התובנות וההמלצות באמצעות Google Cloud CLI, במסוףCloud de Confiance או באמצעות Recommender API.
המסוף
כשצופים בהמלצות במסוף, יש שתי אפשרויות. אפשר להשתמש בכרטיס המידע הכללי בחלק העליון של התצוגה כדי לראות תוצאות מצטברות של המלצות לגבי תקינות, שדרוג ואופטימיזציה של עלויות בכל האשכולות בפרויקט.
אפשר גם לראות רשימה של המלצות לכל אשכול.
כדי לראות את ההמלצות באמצעות כרטיס הניקוד:
נכנסים לדף Google Kubernetes Engine במסוף Cloud de Confiance :
כדי לראות את מספר האשכולות שהושפעו מהמלצות ספציפיות, לוחצים על View recommendations (הצגת המלצות) בקטגוריה הרצויה – Health (תקינות), Upgrade (שדרוג) או Cost (עלות). בחלונית הצדדית שמופיעה, רשימת ההמלצות מציינת כמה קלאסטרים מושפעים מכל המלצה.
כדי לראות מידע נוסף, כולל השמות של האשכולות המושפעים, לוחצים על שם ההמלצה.
כדי לראות פרטים נוספים על כל אשכול שהושפע, לוחצים שוב על ההמלצה.
כדי לראות המלצות לכל אשכול, מבצעים את השלבים הבאים:
נכנסים לדף Google Kubernetes Engine במסוף Cloud de Confiance :
כדי למצוא תובנות והמלצות, בודקים את העמודה התראות לגבי אשכולות ספציפיים.
כדי לראות מידע נוסף, לוחצים על התובנה. בסרגל הצד שנפתח, אפשר לראות פרטים על התובנה הזו, כולל המלצות שקשורות אליה.
gcloud
בדרך כלל, לכל תובנה יש המלצה תואמת. התובנות מאוחזרות באמצעות gcloud recommender insights וההמלצות מאוחזרות באמצעות gcloud recommender recommendations.
כדי לראות את רשימת התובנות לגבי אשכולות באזור ספציפי (לאשכולות אזוריים) או באזור ספציפי (לאשכולות אזוריים):
gcloud recommender insights list \ --insight-type=google.container.DiagnosisInsight \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMAT \ --filter="insightSubtype:SUBTYPE"מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: Cloud de Confiance by S3NS מזהה הפרויקט שבו נמצאים האשכולות. -
LOCATION: האזור או התחום המדויקים של האשכול. בשביל אשכולות אזוריים, צריך לציין את האזור המדויק (לדוגמה,us-central1-c). בשביל אשכולות אזוריים, צריך לציין את האזור המדויק (לדוגמה,us-central1). -
FORMAT: שינוי פורמט הפלט ל-YAML. הדגל הזה הוא אופציונלי. -
SUBTYPE: סוג משנה של תובנה, לדוגמה,DEPRECATION_K8S_1_23_CERTIFICATE. כך אפשר להגביל את הפלט לתובנות מסוג משנה ספציפי. הדגל הזה הוא אופציונלי.
לחלופין, אם כבר יש לכם מזהה של תובנה, אתם יכולים להריץ את הפקודה הבאה כדי לראות פרטים על התובנה:
gcloud recommender insights describe INSIGHT \ --insight-type=google.container.DiagnosisInsight \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMATמחליפים את
INSIGHTבערך של מזהה התובנה, שמופיע בסוף כתובת ה-URL מהשדהnameשל התובנה.הפלט כולל פרטים נוספים על ההתנהגות שזוהתה באשכול GKE.
-
כדי לראות את רשימת ההמלצות לגבי אשכולות באזור מסוים (לאשכולות אזוריים) או באזור מסוים (לאשכולות אזוריים):
gcloud recommender recommendations list \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMAT \ --filter="recommenderSubtype:SUBTYPE"מחליפים את
SUBTYPEבסוג משנה של מערכת המלצות, לדוגמה,DEPRECATION_K8S_1_23_CERTIFICATE. כך אפשר להגביל את הפלט להמלצות של סוג משנה ספציפי. הדגל הזה הוא אופציונלי.לחלופין, אם כבר יש לכם מזהה המלצה, אתם יכולים להציג את ההמלצה על ידי הפעלת הפקודה הבאה:
gcloud recommender recommendations describe RECOMMENDATION_ID \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMATמחליפים את
RECOMMENDATION_IDבערך השמור שלassociatedRecommendations.recommendationמתוך פלט הפקודה בשלב 1.הפלט כולל הנחיות לגבי פעולות שאולי תצטרכו לבצע כדי לייעל את השימוש באשכול ב-GKE.
API
לכל תובנה יש המלצה תואמת. התובנות מאוחזרות באמצעות REST Resource: projects.locations.insightTypes.insights וההמלצות מאוחזרות באמצעות REST Resource: projects.locations.recommenders.recommendations.
כדי לראות את רשימת התובנות לגבי אשכולות באזור ספציפי (לאשכולות אזוריים) או באזור ספציפי (לאשכולות אזוריים):
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights?filter=insightSubtype%20%3D%20SUBTYPEמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: Cloud de Confiance by S3NS מזהה הפרויקט שבו נמצאים האשכולות. -
LOCATION: האזור או התחום המדויקים של האשכול. בשביל אשכולות אזוריים, צריך לציין את האזור המדויק (לדוגמה,us-central1-c). בשביל אשכולות אזוריים, צריך לציין את האזור המדויק (לדוגמה,us-central1). -
SUBTYPE: סוג משנה של תובנה, לדוגמהDEPRECATION_K8S_1_23_CERTIFICATE. כך אפשר להגביל את הפלט לתובנות מסוג משנה ספציפי. הדגל הזה הוא אופציונלי.
לחלופין, אם כבר יש לכם מזהה תובנה, אתם יכולים לראות פרטים על התובנה על ידי שליחת הבקשה הבאה:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights/INSIGHTמחליפים את
INSIGHTבערך של מזהה התובנה, שמופיע בסוף כתובת ה-URL מהשדהnameשל התובנה.גוף התגובה כולל פרטים על ההתנהגות ש-GKE זיהה באשכול.
-
כדי לראות את רשימת ההמלצות לגבי אשכולות באזור מסוים (לאשכולות אזוריים) או באזור מסוים (לאשכולות אזוריים):
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.container.DiagnosisRecommender/recommendations?filter=recommenderSubtype%20%3D%20SUBTYPEמחליפים את
SUBTYPEבסוג משנה של שירות המלצות, לדוגמה,DEPRECATION_K8S_1_23_CERTIFICATE. כך הפלט מוגבל להמלצות של סוג משנה ספציפי. הדגל הזה הוא אופציונלי.לחלופין, אם כבר יש לכם מזהה המלצה, אתם יכולים להציג את ההמלצה על ידי שליחת הבקשה הבאה:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.container.DiagnosisRecommender/recommendations/RECOMMENDATION_IDמחליפים את
RECOMMENDATION_IDבערך השמור שלassociatedRecommendations.recommendationמגוף התגובה בשלב 1.גוף התגובה מספק הנחיות לגבי הפעולות שאולי תצטרכו לבצע כדי לבצע אופטימיזציה של השימוש באשכול GKE.
דוגמה: תובנה
תובנה לגבי הוצאה משימוש כוללת פרטים על התזמון והיקף השימוש בתכונה או ב-API שהוצאו משימוש. המידע שכלול בתובנה תלוי בסוג ההוצאה משימוש שלגביה התובנה מספקת מידע.
זוהי דוגמה לתובנה מסוג DEPRECATION_K8S_1_22_V1BETA1_API insight
subtype:
name: projects/<PROJECT-NUMBER>/locations/us-central1/insightTypes/google.container.DiagnosisInsight/insights/<INSIGHT-ID>
observationPeriod: 2592000s
severity: HIGH
category: RELIABILITY
stateInfo:
state: ACTIVE
insightSubtype: DEPRECATION_K8S_1_22_V1BETA1_API
description: Your API clients have used deprecated APIs in the last 30 days that are removed in Kubernetes v1.22. Upgrading your cluster before migrating to the updated APIs supported by v1.22 could cause it to break. [Learn more](https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-22).
targetResources:
- //container.googleapis.com/projects/<PROJECT-NUMBER>/locations/us-central1/clusters/c1
associatedRecommendations:
- recommendation: projects/<PROJECT-NUMBER>/locations/us-central1/recommenders/google.container.DiagnosisRecommender/recommendations/<RECOMMENDATION-ID>
etag: '"2147dd8e1e302ed7"'
lastRefreshTime: "2022-01-30T08:00:00Z"
content:
targetClusters:
- clusterId: <CLUSTER-ID>
clusterUri: //container.googleapis.com/projects/<PROJECT-NUMBER>/locations/us-central1/clusters/c1
apiDeprecationInsight:
- api: /apis/networking.k8s.io/v1beta1/Ingress
stopServingVersion: 1.22
deprecatedClientStats:
userAgent: kubectl
numberOfRequestsLast30Days: 288
lastRequestTime: "2022-03-02T08:00:18Z"
- api: /apis/rbac.authorization.k8s.io/v1beta1/ClusterRole
stopServingVersion: 1.22
deprecatedClientStats:
userAgent: kubectl
numberOfRequestsLast30Days: 126
lastRequestTime: "2022-02-01T06:45:25Z"
דוגמה: המלצה
המלצה על הוצאה משימוש כוללת תיאור של ההוצאה משימוש וקישור למדריך להעברת נתונים (מיגרציה) שקשור להוצאה משימוש. אפשר למצוא את מדריכי ההעברה האלה גם בטבלה של הוצאה משימוש של תכונות GKE ובטבלה של הוצאה משימוש של Kubernetes API.
זוהי דוגמה להמלצה לגבי סוג המשנה של ההמלצה DEPRECATION_K8S_1_22_V1BETA1_API:
name: projects/<PROJECT-NUMBER>/locations/us-central1/recommenders/google.container.DiagnosisRecommender/recommendations/<RECOMMENDATION-ID>
description: Update manifests and API clients to use v1 API before upgrading to Kubernetes 1.22 by following the [instructions](https://docs.cloud.google.com/kubernetes-engine/docs/deprecations/apis-1-22).
primaryImpact:
category: RELIABILITY
reliabilityProjection:
risks:
- SERVICE_DISRUPTION
priority: P2
recommenderSubtype: DEPRECATION_K8S_1_22_V1BETA1_API
stateInfo:
state: ACTIVE
targetResources:
- //container.googleapis.com/projects/<PROJECT-NUMBER>/locations/us-central1/clusters/c1
associatedInsights:
- insight: projects/<PROJECT-NUMBER>/locations/us-central1/insightTypes/google.container.DiagnosisInsight/insights/<INSIGHT-ID>
etag: '"4dc0f7b33594072f"'
lastRefreshTime: "2022-01-30T08:00:00Z"
content:
overview:
targetClusters:
- clusterId: <CLUSTER-ID>
clusterUri: //container.googleapis.com/projects/<PROJECT-NUMBER>/locations/us-central1/clusters/c1
apiDeprecationRecommendation:
- api: /apis/networking.k8s.io/v1beta1/Ingress
apiReplacement: /apis/networking.k8s.io/v1/Ingress
stopServingVersion: 1.22
- api: /apis/rbac.authorization.k8s.io/v1beta1/ClusterRole
apiReplacement: /apis/rbac.authorization.k8s.io/v1/ClusterRole
stopServingVersion: 1.22
ייצוא תובנות והמלצות ל-BigQuery
אתם יכולים להשתמש ב-BigQuery כדי לייצא ולנתח תובנות והמלצות לכל הארגון. מידע נוסף על ייצוא המלצות ל-BigQuery
סגירה או שחזור של המלצות לגבי הוצאה משימוש
אם אתם לא רוצים לראות יותר המלצה להוצאה משימוש של אשכול במסוףCloud de Confiance , אתם יכולים למחוק אותה. לדוגמה, יכול להיות שתעשו את זה כדי לדחות המלצות שרלוונטיות לאשכולות זמניים לטווח קצר.
אם תסגרו את ההמלצה, היא לא תופיע יותר לאף משתמש שצופה באשכול במסוף. אחרי שסוגרים את ההמלצה, היא לא מופיעה שוב גם אם סוכן משתמש קורא ל-API או לתכונה שהוצאו משימוש בסוג המשנה הזה אחרי הסגירה.
עם זאת, ההמלצה עדיין זמינה באמצעות Google Cloud CLI ו-Recommender API.
כשאתם דוחים המלצה, אתם רק מסתירים אותה מכל המשתמשים. השדרוגים האוטומטיים יושארו בהשהיה עד שתבצעו מיגרציה מהתכונה או מה-API שהוצאו משימוש, ועד שמערכת GKE לא תזהה שימוש בממשקי ה-API שהוצאו משימוש במשך 30 ימים רצופים, או עד שהגרסה של האשכול תגיע לסוף התמיכה. מידע נוסף זמין במאמר מתי GKE מחדש את השדרוגים האוטומטיים?
דחיית המלצה
כדי לבטל את ההמלצה, פועלים לפי ההוראות שבקטע הצגת תובנות והמלצות במסוףCloud de Confiance כדי לפתוח את חלונית סרגל הצד, שבה מופיעים פרטים נוספים. בחלונית הזו, לוחצים על הלחצן Dismiss (סגירה).
ביטול המלצות באמצעות Google Cloud CLI
כדי לסגור המלצה באמצעות ה-CLI של gcloud, צריך לאתר את הערך etag של ההמלצה הפעילה ולסמן אותה כהמלצה שנסגרה.
רשימת המלצות פעילות: כדי למצוא את ההמלצה שרוצים לבטל, מציגים את רשימת ההמלצות הפעילות עבור האשכול. כדי לא לכלול המלצות שכבר נדחו, או שהצליחו או נכשלו, משתמשים בדגל
--filter:gcloud recommender recommendations list \ --recommender=RECOMMENDER_ID \ --project=PROJECT_ID \ --location=LOCATION \ --filter="stateInfo.state=ACTIVE"מחליפים את מה שכתוב בשדות הבאים:
-
RECOMMENDER_ID: המזהה של שירות ההמלצות. -
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS שבו נמצאים האשכולות. -
LOCATION: האזור או התחום המדויקים של האשכול. במקרה של אשכולות אזוריים, צריך לציין את האזור המדויק (למשלus-central1-c). במקרה של אשכולות אזוריים, צריך לציין את האזור המדויק (למשלus-central1).
-
אחזור ה-etag: מוצאים את
RECOMMENDATION_IDמהפלט הקודם ומתארים אותו כדי לאחזר את המצב הנוכחי שלו ואתetag:gcloud recommender recommendations describe RECOMMENDATION_ID \ --recommender=RECOMMENDER_ID \ --project=PROJECT_ID \ --location=LOCATIONמחליפים את מה שכתוב בשדות הבאים:
-
RECOMMENDATION_ID: המזהה של ההמלצה שרוצים לבטל.
שימו לב לערך
etagבפלט (לדוגמה,"a770e444b0088a35").-
סימון כהודעה שנסגרה: מריצים את הפקודה
mark-dismissed. כדי למנוע מרוץ תהליכים, צריך להשתמש ב-Recommender API עםetagמדויק.gcloud recommender recommendations mark-dismissed RECOMMENDATION_ID \ --recommender=RECOMMENDER_ID \ --project=PROJECT_ID \ --location=LOCATION \ --etag='"ETAG_VALUE"'מחליפים את מה שכתוב בשדות הבאים:
-
ETAG_VALUE: הערך שלetagשמוחזר מהפקודה describe.
-
שחזור המלצה שנדחתה
אפשר לשחזר המלצה שנדחתה על ידי ביצוע ההוראות לשחזור המלצה.
המאמרים הבאים
- מידע נוסף על הוצאה משימוש ב-GKE זמין במאמר הוצאה משימוש של תכונות וממשקי API.
- מידע נוסף על Recommender API