Kubernetes v1.22 è una nuova versione di funzionalità che aggiunge oltre 50 miglioramenti a la piattaforma di orchestrazione dei container. Inoltre, rende obsolete alcune funzionalità e rimuove diverse API che sono state sostituite da versioni sostitutive.
Ecco i dettagli sui cambiamenti più significativi, a partire dalle aggiunte di funzionalità.
Applicazione lato server
L'applicazione lato server è ora fuori dalla versione beta e generalmente disponibile per tutti gli utenti. È un nuovo meccanismo per facilitare la gestione dichiarativa delle risorse da parte di utenti e controller del cluster.
L'utilizzo di Applica lato server consente agli sviluppatori di avviare modifiche alle risorse descrivendo le proprie intenzioni. Il server API Kubernetes tiene traccia delle modifiche agli oggetti campo per campo. Questa “gestione del campo” il sistema crea un modello di proprietà in cui le modifiche a un campo aggiunte da un altro manager vengono automaticamente rifiutate. Ciò impedisce di annullare involontariamente un'operazione avviata da un altro amministratore.
Prima dell'applicazione lato server, la logica per identificare i campi di risorse che richiedono un aggiornamento faceva parte del comando kubectl apply lato client. Ora questo è elevato al server, rendendo più semplice per i controller applicare le proprie modifiche alla configurazione e facilitando le nuove funzionalità di controllo degli accessi. Vengono registrate le modifiche ai singoli campi, non solo l'ultimo stato applicato da ciascun utente.
Annuncio
Le risorse ottengono una nuova proprietà managedFields quando l'applicazione lato server con gestione dei campi è attiva. Registra ogni campo, i dati ad esso associati e l'ora dell'ultimo aggiornamento. La modifica manuale dei managedFields è possibile ma fortemente sconsigliata; è previsto che solo il server API Kubernetes scriverà questi valori.
La gestione sul campo include il supporto per la risoluzione dei conflitti e quattro diverse strategie di unione. Questi ti consentono di personalizzare ciò che accade quando provi a modificare un campo che è già stato modificato da un altro utente. Se necessario, puoi forzare l'applicazione delle modifiche, trasferendo la proprietà all'utente in entrata.
Fornitori di credenziali esterni
Anche i provider di credenziali esterni hanno fatto il salto a stabile. Questi ti consentono di utilizzare i plug-in per ottenere credenziali come token di autenticazione e certificati TLS dall'esterno del tuo cluster.
La funzione ti consente di integrare il controllo degli accessi Kubernetes con i provider di autenticazione esistenti. I provider possono autenticarti utilizzando i sistemi OAuth2, LDAP e SAML, così puoi accedere utilizzando le tue credenziali esistenti per i servizi più diffusi.
I provider sono implementati come plug-in con un componente lato server in esecuzione nel cluster. Questo utilizza un webhook speciale per convertire i token specifici del client in un formato che il server API Kubernetes può interpretare.
Esecuzione senza root
Gli ambienti ad alta sicurezza possono ottenere maggiori protezioni eseguendo il piano di controllo Kubernetes come utente non root. Questa è una funzionalità alpha disponibile per le nuove distribuzioni di cluster. Aiuta a mitigare i rischi di una riuscita compromissione del piano di controllo fornendo accesso illimitato al tuo host.
Pubblicità
L'avvio di un cluster come utente non root richiede l'abilitazione del gate della funzionalità RootlessControlPlane. Il piano di controllo dovrebbe quindi avviarsi senza utilizzare sudo.
Esiste un supporto simile per l'esecuzione di singoli componenti a livello di nodo in un ambiente non root. Kubelet, kube-proxy e il runtime del contenitore ora hanno questa capacità, aiutandoti a rafforzare la sicurezza della tua installazione.
Rimozioni API
Come una nuova versione minore, v1.22 depreca alcune funzionalità esistenti in vari componenti Kubernetes. Si tratta principalmente di comandi, flag e alcuni plug-in di autenticazione e archiviazione. Le funzionalità interessate rimangono disponibili ma potrebbero essere eliminate in futuro.
v1.22 rimuove del tutto anche 12 API precedentemente deprecate. Le API rimosse sono tutte versioni beta che sono state sostituite da nuove alternative stabili.
L'elenco include le risorse Ingress e IngressClass utilizzate per esporre i servizi con regole di routing. Le versioni networking.k8s.io/v1beta1 di questi oggetti dovrebbero essere sostituite con le loro controparti networking.k8s.io/v1 che rimangono supportate.
Altre API rimosse includono le versioni beta di APIService, CertificateSigningRequest, CustomResourceDefinition e Lease, nonché diversi oggetti relativi al controllo degli accessi, all'archiviazione e alla pianificazione. Rivedi la guida alla migrazione prima di applicare l'aggiornamento al tuo cluster. Dovrai modificare qualsiasi risorsa utilizzando le API rimosse in modo che facciano riferimento alle nuove versioni stabili.
La prossima versione di Kubernetes che includerà le rimozioni sarà la v1.25. Questo è attualmente programmato per rimuovere quattro API beta: CronJob, EndpointSlice, Event e PodDisruptionBudget.
Altre modifiche
Questa versione offre molte altre aggiunte e miglioramenti minori tra cui il supporto alfa per la memoria di scambio, un'esperienza migliorata durante l'esecuzione di Kubernetes su Windows e la possibilità di utilizzare cgroups v2 per impostare l'allocazione della memoria e i vincoli di isolamento sui Pod.
Pubblicità
Etcd, l'archivio di configurazione utilizzato dal server API Kubernetes, è stato aggiornato alla v3.5.0. Ciò migliora le capacità di registrazione con un nuovo formato strutturato e la rotazione dei file integrata. Il progetto ha anche fornito significativi miglioramenti delle prestazioni per accelerare alcune operazioni comuni di Kubernetes.
Diverse API beta sono ora contrassegnate come stabili, inclusi i token dell'account di servizio associato e l'oggetto PodDisruptionBudget per specificare i conteggi minimi di repliche simultanee. Kubernetes ha acquisito la capacità di avvisarti quando usi anche un'API deprecata, rendendo più facile rimanere sul percorso stabile. Vedrai questi messaggi mentre applichi le risorse al tuo cluster.
Nuova cadenza di rilascio
v1.22 segna l'inizio di una nuova cadenza di rilascio regolare per gli aggiornamenti di Kubernetes. Le funzionalità ora arriveranno quattro volte l'anno anziché tre, creando un ciclo di sviluppo leggermente più lungo che offre maggiori possibilità di ottimizzare e mantenere la qualità del rilascio. Offre inoltre più spazio per gli amministratori del cluster che ora hanno un mese in più tra le migrazioni.
In linea con questo programma, Kubernetes v1.23 dovrebbe arrivare all'inizio di dicembre 2021. Ogni ciclo ha un tempo di sviluppo stimato di 15 settimane. Gli aggiornamenti regolari delle patch verranno comunque rilasciati alla cadenza mensile esistente, con correzioni di bug critici che arriveranno prima quando necessario.
Riepilogo
Kubernetes v1.22 è un aggiornamento fondamentale che vede il progetto passare a una nuova cadenza di rilascio. Ciò aiuterà gli amministratori del cluster a pianificare gli aggiornamenti futuri, fornendo più tempo di migrazione prima che arrivi il prossimo.
Pubblicità
In termini di nuove funzionalità, l'aggiunta più significativa è probabilmente l'applicazione lato server. Ciò semplifica l'uso delle configurazioni dichiarative delle risorse, sollevando la logica da kubectl al cluster. Questo dovrebbe eventualmente sostituire del tutto l'implementazione originale di kubectl apply.
L'aggiornamento alla v1.22 potrebbe richiedere un'azione se stai ancora utilizzando una delle API beta rimosse. Dovresti essere in grado di sostituirli con le loro versioni stabili, anche se in alcuni casi ciò potrebbe significare modificare le tue risorse. Prendersi del tempo per affrontare le nuove deprecazioni nella v1.22 ti aiuterà a prepararti per l'arrivo della v1.23, facilitando il processo di migrazione di quella release.