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

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

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

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

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

המסוף

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

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

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

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

  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.

שחזור המלצה שנסגרה

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

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