Kubernetes 1.37: cosa controllare prima di aggiornare

Pubblicato il 2 ottobre 2026 · Aggiornato il 2 ottobre 2026

In breve. Kubernetes 1.37 è uscito il 26 agosto 2026. Prima di aggiornare controlla SELinuxMount attivo di default, l'API scheduling.k8s.io/v1alpha2 rimossa e il nuovo significato di eventRecordQPS=0. La 1.34 termina il supporto il 27 ottobre 2026: chi è su quella versione deve pianificare ora.

Kubernetes 1.37 (“Garhwal”) è stato pubblicato il 26 agosto 2026; la patch 1.37.1 è del 15 settembre. Fonte: annuncio di rilascio e pagina dei rilasci.

Calendario di supporto

Versione Fine manutenzione Fine supporto (EOL)
1.34 27 agosto 2026 (già in corso) 27 ottobre 2026
1.35 28 dicembre 2026 28 febbraio 2027
1.36 28 aprile 2027 28 giugno 2027
1.37 28 agosto 2027 28 ottobre 2027

Fonte: patch releases, consultata il 2 ottobre 2026. Un cluster alla 1.34 ha poche settimane di margine.

Le quattro azioni obbligatorie

Dal CHANGELOG 1.37, sezione “Urgent Upgrade Notes”:

  1. SELinuxMount è GA e attivo di default. Può rompere carichi su cluster con SELinux. Individua i carichi problematici in un cluster 1.36 prima dell’aggiornamento, seguendo il blog sul cambio. Senza SELinux non serve nulla.
  2. scheduling.k8s.io/v1alpha2 è rimossa. Elimina dal server API tutti gli oggetti di quella versione prima di aggiornare.
  3. eventRecordQPS=0 ora significa “nessun limite”. Se contavi sul comportamento precedente, imposta un valore diverso da zero.
  4. Il kubelet scrive la configurazione effettiva nei log all’avvio. Limita il ClusterRole che dà accesso ai log dei nodi a chi ne ha bisogno.

Rimozioni e deprecazioni da controllare

  • Rimossi i feature gate GangScheduling e WorkloadAwarePreemption (si usa GenericWorkload) e il gate AnyVolumeDataSource.
  • La modalità ipvs di kube-proxy è deprecata dalla 1.35; nftables è GA dalla 1.33. kubeadm ora scrive esplicitamente la modalità iptables se non indicata.
  • Pod Certificates sono GA: i campi PKIXPublicKey e ProofOfPossession sono rimossi dalla v1.
  • Workload e PodGroup passano a scheduling.k8s.io/v1beta1, con campi rinominati: rilevante se li usi.
  • I Pod con risorse vuote ({}) non influenzano più il calcolo della classe QoS.
  • ingress-nginx non riceve più correzioni da marzo 2026: vedi la checklist di migrazione a Gateway API.
  • Service externalIPs: la deprecazione è annunciata dalla 1.36; la versione esatta di rimozione non è stata verificata, non darla per avvenuta senza ricontrollare.

Cosa guadagni

Diventano GA tra l’altro metrics.k8s.io/v1, StorageVersionMigration, il ridimensionamento sul posto per gli init container e le estensioni DRA per le risorse esterne. Sono in beta la modalità rootless del kubelet e la riduzione a zero repliche con l’HPA. Elenchi completi nel CHANGELOG.

Checklist di aggiornamento

  1. Snapshot di etcd e prova di ripristino.
  2. Aggiorna prima un cluster di prova con gli stessi componenti (CNI, runtime, controller di rete, add-on).
  3. Rileggi la sezione “Urgent Upgrade Notes” e i feature gate che usi.
  4. Verifica la politica di skew tra control plane, kubelet e kubectl.
  5. Pianifica il ritorno indietro prima di toccare il cluster di produzione.

Cosa non è verificato

Versioni minime dei runtime di container, compatibilità dei plugin di rete e versione di Gateway API richiesta non sono state trovate in fonti primarie per questa nota: controllale sulla documentazione dei tuoi componenti.

Per un piano di aggiornamento provato sul tuo cluster, vedi Kubernetes e piattaforme cloud native.

Serve una mano?

Se vuoi applicare questi punti al tuo caso, raccontamelo in poche righe.

Parliamone