Entfernte Kubernetes APIs erkennen

Es gibt mehrere Kubernetes-Releases mit verworfenen und entfernten APIs. Wenn Sie ein Upgrade eines Google Distributed Cloud-Clusters auf eine neue Kubernetes-Version ausführen und Ihre Arbeitslasten APIs verwenden, die entfernt wurden, können Ihre Arbeitslasten unterbrochen werden. Führen Sie die Schritte in diesem Dokument aus, um festzustellen, ob Ihre Arbeitslasten eine der entfernten APIs für eine bestimmte Kubernetes-Version verwenden, bevor Sie den Cluster upgraden.

Eine Liste der entfernten APIs nach Kubernetes-Release finden Sie in der Kubernetes-Dokumentation im Leitfaden zur Migration zur eingestellten API.

Bestimmen, ob die API-Löschung Sie betrifft

Für die folgenden Schritte muss für Ihre Google Distributed Cloud-Cluster Cluster-Audit-Logging aktiviert sein und Audit-Logs an Google Cloud Observability gestreamt werden. Dies ist das Standardverhalten.

Führen Sie die bereitgestellte Abfrage im Log-Explorer aus, um festzustellen, ob die von Ihnen 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 Arbeitslasten enthält, die Sie prüfen.

    • 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 Ihre Kubernetes-Dienstkonten Aufrufe an eine API senden, die für den jeweiligen Kubernetes-Nebenrelease entfernt wurden.