Rilevare le API Kubernetes rimosse

Esistono diverse release di Kubernetes che hanno ritirato e rimosso le API. Se esegui l'upgrade di un cluster Google Distributed Cloud a una nuova versione di Kubernetes e i tuoi carichi di lavoro utilizzano API rimosse, questi potrebbero subire interruzioni. Segui i passaggi descritti in questo documento per determinare se i tuoi carichi di lavoro utilizzano una delle API rimosse per una determinata versione di Kubernetes prima di eseguire l'upgrade del cluster.

Per un elenco delle API rimosse per release di Kubernetes, consulta la Guida alla migrazione delle API ritirate nella documentazione di Kubernetes.

Determinare se l'eliminazione dell'API ti riguarda

I seguenti passaggi richiedono che nei cluster Google Distributed Cloud sia abilitata la registrazione degli audit dei cluster e che gli audit log vengano trasmessi a Google Cloud Observability, che è il comportamento predefinito.

Per determinare se gli account di servizio Kubernetes che utilizzi effettuano chiamate ad API eliminate, esegui la query fornita in Esplora log:

  1. Nella Google Cloud console, vai alla pagina Esplora log nel menu Logging.

    Vai a Esplora log

  2. Nel campo Query, inserisci la seguente 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"
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del cluster che contiene i carichi di lavoro che stai controllando.

    • PROJECT_ID: l'ID del Google Cloud progetto utilizzato dal cluster per log e metriche (clusterOperations.projectID).

    • KUBERNETES_MINOR_VERSION: la versione secondaria di Kubernetes, ad esempio 1.25, che ha rimosso le API.

    L'output di questa query mostra se uno degli account di servizio Kubernetes effettua chiamate alle API rimosse per la release secondaria di Kubernetes specificata.