בדף הזה מוסבר איך לצפות בתובנות ובהמלצות לגבי הוצאה משימוש של Kubernetes באשכולות Google Kubernetes Engine (GKE). מידע נוסף על ניהול הוצאה משימוש של Kubernetes באמצעות GKE זמין במאמר בנושא הוצאה משימוש של תכונות ו-API.
מהן תובנות והמלצות לגבי הוצאה משימוש?
כש-GKE מזהה שאשכול משתמש בתכונה או בממשק API של Kubernetes שהוצאו משימוש ויוסרו בגרסה משנית קרובה, קורה הדבר הבא:
- השדרוג האוטומטי לגרסת המשנה הבאה מושהה. מידע נוסף על אופן הפעולה של התכונה הזו זמין במאמר מה קורה כש-GKE משהה שדרוגים אוטומטיים.
- נוצרת תובנה והמלצה כדי שתוכלו להעריך את החשיפה של האשכול להוצאה משימוש ולצמצם אותה.
תובנות והמלצות לגבי הוצאה משימוש זמינות בשירות ההמלצות, שירות שמספק תובנות והמלצות לשימוש במשאבים ב-Cloud de Confiance by S3NS. במאמר ייעול השימוש ב-GKE באמצעות תובנות והמלצות מוסבר איך שירות ההמלצות פועל עם GKE.
בנושא ההוצאה משימוש של Recommender:
- תובנה מסבירה שהאשכול שלך משתמש בתכונה או ב-API שהוצאו משימוש ויוסרו בגרסה משנית קרובה.
- המלצה מספקת הנחיות לגבי הפעולות שצריך לבצע כדי לצמצם את החשיפה של האשכול להוצאה משימוש.
לדוגמה, תובנה יכולה להסביר שהאשכול שלכם משתמש ב-API בגרסת בטא שהוצא משימוש ויוסר בגרסה המשנית הבאה. בהמלצה מוסבר שצריך להעביר את עומסי העבודה משימוש בממשקי API בגרסת בטא לשימוש בממשקי API בגרסה 1. כל המלצה כוללת הפניה למדריך העברה לתכונה או ל-API שהוצאו משימוש. מדריך ההעברה הזה זמין גם בטבלה המתאימה להוצאה משימוש של Kubernetes.
כש-GKE יוצר זוג של תובנה והמלצה, הוא כולל שימוש בכל ממשקי ה-API או התכונות של Kubernetes שהוצאו משימוש בסוג משנה מסוים של תובנה עבור אשכול אחד בפרויקט. לדוגמה, אם סוכני משתמש קוראים לאחד מממשקי ה-API שמוגדרים על ידי סוג המשנה DEPRECATION_K8S_1_22_V1BETA1_API, יופיעו תובנה והמלצה להעביר את האשכול הזה לשימוש בממשקי ה-API האלה. אם גם אשכול אחר משתמש בממשקי ה-API האלה, GKE יוצר עוד תובנה והמלצה.
שימוש בתכונות ובממשקי API של Kubernetes שהוצאו משימוש שזוהה על ידי GKE
| הוצאה משימוש | הוסרה בגרסת GKE | סוג משנה של תובנה |
|---|---|---|
| זמני קצובים לתפוגה של בדיקות Exec | 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 |
| ממשקי API שהוצאו משימוש ב-Kubernetes 1.29 | 1.29 | DEPRECATION_K8S_1_29_API |
| APIs שהוצאו משימוש ב-Kubernetes 1.27 | 1.27 | DEPRECATION_K8S_1_27_API |
| ממשקי API שהוצאו משימוש ב-Kubernetes 1.26 | 1.26 | DEPRECATION_K8S_1_26_API |
| ממשקי API שהוצאו משימוש ב-Kubernetes 1.25 | 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 Common Name (שם נפוץ) באישורים של 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 |
חשוב לזכור שבמקרה של הוצאה משימוש עתידית, עליכם להעריך באופן עצמאי את החשיפה של סביבת האשכולות שלכם ולטפל בכל הבעיות.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את gcloud CLI. אם התקנתם בעבר את ה-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://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 כדי לפתוח את חלונית סרגל הצד, שבה מופיעים פרטים נוספים. בחלונית הזו, לוחצים על הלחצן סגירה.
דחיית המלצות באמצעות Google Cloud CLI
כדי לסגור המלצה באמצעות gcloud CLI, צריך לאתר את הערך 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