Entfernte Kubernetes APIs erkennen

Es gibt mehrere Kubernetes-Releases, die APIs verworfen und entfernt haben. Wenn Sie einen GKE on Bare Metal-Cluster auf eine neue Kubernetes-Version upgraden und Ihre Arbeitslasten APIs verwenden, die entfernt wurden, können Ihre Arbeitslasten unterbrochen werden. Anhand der Schritte in diesem Dokument können Sie ermitteln, ob Ihre Arbeitslasten eine der entfernten APIs für eine bestimmte Kubernetes-Version verwenden, bevor Sie den Cluster upgraden.

Eine Liste der nach Kubernetes-Release entfernten APIs finden Sie in der Kubernetes-Dokumentation unter Migrationsanleitung für verworfene APIs.

Ermitteln, ob sich das Löschen der API auf Sie auswirkt

Für die folgenden Schritte ist es erforderlich, dass für Ihre GKE on Bare-Metal-Cluster das Audit-Logging von Clustern aktiviert ist und dass Audit-Logs an das Standardverhalten Google Cloud-Beobachtbarkeit gestreamt werden.

Führen Sie die bereitgestellte Abfrage im Log-Explorer aus, um festzustellen, ob die verwendeten Kubernetes-Dienstkonten Aufrufe an gelöschte APIs senden:

  1. Rufen Sie in der Google Cloud Console im Menü Logging die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Geben Sie im Feld Query die folgende Abfrage ein:

    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"
    

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME: der Name des Clusters, der die zu prüfenden Arbeitslasten enthält

    • PROJECT_ID: die ID des Google Cloud-Projekts, das Ihr Cluster für Logs und Messwerte verwendet (clusterOperations.projectID).

    • KUBERNETES_MINOR_VERSION: die Kubernetes-Nebenversion, z. B. 1.25, in der APIs entfernt wurden.

    Die Ausgabe dieser Abfrage zeigt, ob eines Ihrer Kubernetes-Dienstkonten Aufrufe an die API sendet, die für den jeweiligen Kubernetes-Nebenrelease entfernt wurden.