צפייה בתובנות ובהמלצות לגבי הוצאה משימוש

בדף הזה מוסבר איך לצפות בתובנות ובהמלצות לגבי הוצאה משימוש של Kubernetes באשכולות Google Kubernetes Engine ‏ (GKE). מידע נוסף על ניהול הוצאה משימוש של Kubernetes באמצעות GKE זמין במאמר בנושא הוצאה משימוש של תכונות וממשקי API.

מהן תובנות והמלצות לגבי הוצאה משימוש?

כש-GKE מזהה שאשכול משתמש בתכונה או ב-API של Kubernetes שהוצאו משימוש ויוסרו בגרסה משנית קרובה, קורה הדבר הבא:

אפשר לקבל תובנות והמלצות לגבי הוצאה משימוש דרך 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.

המסוף

כשצופים בהמלצות במסוף, יש שתי אפשרויות. אפשר להשתמש בכרטיס המידע הכללי בחלק העליון של התצוגה כדי לראות תוצאות מצטברות של המלצות לגבי תקינות, שדרוג ואופטימיזציה של עלויות בכל האשכולות בפרויקט.

אפשר גם לראות רשימה של המלצות לכל אשכול.

כדי לראות את ההמלצות באמצעות כרטיס הניקוד:

  1. נכנסים לדף Google Kubernetes Engine במסוף Cloud de Confiance :

    מעבר אל Google Kubernetes Engine

  2. כדי לראות את מספר האשכולות שהושפעו מהמלצות ספציפיות, לוחצים על View recommendations (הצגת המלצות) בקטגוריה הרצויה – Health (תקינות), Upgrade (שדרוג) או Cost (עלות). בחלונית הצדדית שמופיעה, רשימת ההמלצות מציינת כמה קלאסטרים מושפעים מכל המלצה.

  3. כדי לראות מידע נוסף, כולל השמות של האשכולות המושפעים, לוחצים על שם ההמלצה.

  4. כדי לראות פרטים נוספים על כל אשכול שהושפע, לוחצים שוב על ההמלצה.

כדי לראות המלצות לכל אשכול, מבצעים את השלבים הבאים:

  1. נכנסים לדף Google Kubernetes Engine במסוף Cloud de Confiance :

    מעבר אל Google Kubernetes Engine

  2. כדי למצוא תובנות והמלצות, בודקים את העמודה התראות לגבי אשכולות ספציפיים.

  3. כדי לראות מידע נוסף, לוחצים על התובנה. בסרגל הצד שנפתח, אפשר לראות פרטים על התובנה הזו, כולל המלצות שקשורות אליה.

gcloud

בדרך כלל, לכל תובנה יש המלצה תואמת. התובנות מאוחזרות באמצעות gcloud recommender insights וההמלצות מאוחזרות באמצעות gcloud recommender recommendations.

  1. כדי לראות את רשימת התובנות לגבי אשכולות באזור ספציפי (לאשכולות אזוריים) או באזור ספציפי (לאשכולות אזוריים):

    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.

  2. כדי לראות את רשימת ההמלצות לגבי אשכולות באזור מסוים (לאשכולות אזוריים) או באזור מסוים (לאשכולות אזוריים):

    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.

  1. כדי לראות את רשימת התובנות לגבי אשכולות באזור ספציפי (לאשכולות אזוריים) או באזור ספציפי (לאשכולות אזוריים):

    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 זיהה באשכול.

  2. כדי לראות את רשימת ההמלצות לגבי אשכולות באזור מסוים (לאשכולות אזוריים) או באזור מסוים (לאשכולות אזוריים):

    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 של ההמלצה הפעילה ולסמן אותה כהמלצה שנסגרה.

  1. רשימת המלצות פעילות: כדי למצוא את ההמלצה שרוצים לבטל, מציגים את רשימת ההמלצות הפעילות עבור האשכול. כדי לא לכלול המלצות שכבר נדחו, או שהצליחו או נכשלו, משתמשים בדגל --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).
  2. אחזור ה-etag: מוצאים את RECOMMENDATION_ID מהפלט הקודם ומתארים אותו כדי לאחזר את המצב הנוכחי שלו ואת etag:

    gcloud recommender recommendations describe RECOMMENDATION_ID \
        --recommender=RECOMMENDER_ID \
        --project=PROJECT_ID \
        --location=LOCATION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫RECOMMENDATION_ID: המזהה של ההמלצה שרוצים לבטל.

    שימו לב לערך etag בפלט (לדוגמה, "a770e444b0088a35").

  3. סימון כהודעה שנסגרה: מריצים את הפקודה 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.

שחזור המלצה שנדחתה

אפשר לשחזר המלצה שנדחתה על ידי ביצוע ההוראות לשחזור המלצה.

המאמרים הבאים