Rilevare le API Kubernetes rimosse

Esistono diverse release di Kubernetes che hanno API deprecate e rimosse. 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, i carichi di lavoro possono essere interrotti. 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 deprecate nella documentazione di Kubernetes.

Determinare se l'eliminazione dell'API ti riguarda

I passaggi che seguono richiedono che nei cluster Google Distributed Cloud sia attivata la registrazione degli audit del cluster e che gli audit log vengano trasmessi in streaming a Google Cloud Observability, che è il comportamento predefinito.

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

  1. Nella console Google Cloud, 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 progetto Google Cloud utilizzato dal tuo cluster per i log e le 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 dei tuoi account di servizio Kubernetes effettua chiamate all'API che sono state rimosse per la versione minore di Kubernetes indicata.