זיהוי ממשקי API שהוסרו מ-Kubernetes

יש כמה גרסאות של Kubernetes שבהן הוצאו משימוש ממשקי API והוסרו. אם משדרגים אשכול של Google Distributed Cloud לגרסה חדשה של Kubernetes, ועומסי העבודה משתמשים בממשקי API שהוסרו, יכול להיות שיהיו שיבושים בעומסי העבודה. כדי לבדוק אם עומסי העבודה שלכם משתמשים באחד ממשקי ה-API שהוסרו בגרסה מסוימת של Kubernetes, צריך לפעול לפי השלבים שמפורטים במסמך הזה לפני שמשדרגים את האשכול.

רשימה של ממשקי API שהוסרו לפי מהדורת Kubernetes מופיעה במדריך המיגרציה של ממשקי API שהוצאו משימוש במסמכי התיעוד של Kubernetes.

איך יודעים אם מחיקת ה-API משפיעה עליכם

כדי לבצע את השלבים הבאים, צריך להפעיל יומני ביקורת באשכולות של Google Distributed Cloud, ולשדר את יומני הביקורת ל-Google Cloud Observability. זוהי התנהגות ברירת המחדל.

כדי לבדוק אם חשבונות השירות ב-Kubernetes שבהם אתם משתמשים מבצעים קריאות לממשקי API שנמחקו, מריצים את השאילתה שמופיעה למטה ב-Logs Explorer:

  1. במסוף Google Cloud , נכנסים לדף Logs Explorer בתפריט Logging.

    כניסה לדף Logs Explorer

  2. בשדה Query, מזינים את השאילתה הבאה:

    resource.labels.cluster_name = "CLUSTER_NAME" AND
    logName = "projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity" AND
    protoPayload.authenticationInfo.principalEmail:("system:serviceaccount" OR "@") AND
    protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:kube-system:") AND
    protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:cert-manager:") AND
    protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:capi-kubeadm-bootstrap-system:") AND
    protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:capi-kubeadm-bootstrap-system-webhook:") AND
    protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:capi-system:") AND
    protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:capi-system-webhook:") AND
    labels."k8s.io/removed-release"="KUBERNETES_MINOR_VERSION"
    

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

    • CLUSTER_NAME: שם האשכול שמכיל את עומסי העבודה שאתם בודקים.

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud שבו האשכול משתמש ליומנים ולמדדים (clusterOperations.projectID).

    • KUBERNETES_MINOR_VERSION: הגרסה המשנית של Kubernetes שממנה הוסרו ממשקי API, למשל 1.25.

    הפלט של השאילתה הזו מראה אם חשבונות שירות של Kubernetes מבצעים קריאות ל-API שהוסר בגרסה המשנית של Kubernetes.