rilascio della piattaforma di orchestrazione dei container , che consente di gestire come un'unica entità un cluster di container isolati e fornisce meccanismi per il deployment, la gestione e il scaling delle applicazioni eseguite nei container. Il progetto è stato originariamente creato da Google, ma poi è stato trasferito a una piattaforma indipendente sotto la supervisione della Linux Foundation. La piattaforma è posizionata come una soluzione universale sviluppata dalla comunità, non legata a sistemi specifici e in grado di funzionare con qualsiasi applicazione in qualsiasi ambiente cloud. Il codice di Kubernetes è scritto in Go e sotto licenza Apache 2.0.
fornisce funzionalità per il deployment e la gestione dell'infrastruttura, come la gestione del database DNS, il bilanciamento del carico,
distribuzione dei container sui nodi del cluster (migrazione dei container in base alle variazioni di carico e alle esigenze dei servizi), verifica della funzionalità a livello di applicazioni, gestione degli account, aggiornamento e scalabilità dinamica del cluster in funzione, senza interruzioni. È possibile implementare gruppi di container eseguendo operazioni di aggiornamento e rollback simultaneamente per l'intero gruppo, così come una suddivisione logica del cluster in parti con separazione delle risorse. È supportata la migrazione dinamica delle applicazioni, per le quali possono essere utilizzati sia archivi locali che sistemi di archiviazione di rete.
Il rilascio di Kubernetes 1.18 include 38 modifiche e miglioramenti, di cui 15 sono stati trasferiti allo stato stabile e 11 allo stato beta. 12 nuove modifiche sono proposte in stato alpha. Nella preparazione della nuova versione, sono stati dedicati sforzi equivalenti sia al perfezionamento delle varie funzionalità e alla stabilizzazione delle capacità sperimentali, sia all'aggiunta di nuovi sviluppi. Modifiche principali:
- Kubectl
- versione alpha del comando «kubectl debug», che semplifica il debug nei pod avviando contenitori effimeri con strumenti di debug.
- comando «kubectl diff», che permette di vedere quali modifiche verranno apportate al cluster se si applica il manifesto.
- tutti i generatori del comando «kubectl run», ad eccezione del generatore di avvio di un singolo pod.
- il flag «--dry-run», a seconda del suo valore (client, server e none) l'esecuzione di prova del comando viene eseguita lato client o server.
- Il codice kubectl in un repository separato. Questo ha permesso di separare kubectl dalle dipendenze interne di kubernetes e ha facilitato l'importazione del codice in progetti esterni.
- Ingress
- cambiamento del gruppo API per Ingress a networking.v1beta1.
- nuovi campi:
- pathType, che consente di specificare come verrà confrontato il percorso nella richiesta
- IngressClassName — sostituzione dell'annotazione kubernetes.io/ingress.class, che è stata dichiarata obsoleta. In questo campo viene specificato il nome di un oggetto IngressClass speciale
- oggetto IngressClass, in cui viene specificato il nome del controller ingress, i suoi parametri aggiuntivi e il flag di utilizzo predefinito
- Service
- campo AppProtocol, in cui è possibile specificare quale protocollo utilizza l'applicazione
- in stato beta e abilitato per impostazione predefinita EndpointSlicesAPI, che è un sostituto più funzionale degli Endpoints ordinari.
- Rete
- IPv6 è stata portata in stato beta.
- Dischi persistenti. È stata dichiarata stabile la seguente funzionalità:
- Configurazione dell'applicazione
- Negli oggetti ConfigMap e Secret nuovo campo «immutable». Impostare il valore del campo su true impedisce la modifica dell'oggetto.
- Pianificatore
- possibilità di creare profili aggiuntivi per kube-scheduler. Se in precedenza era necessario eseguire pianificatori separati aggiuntivi per implementare algoritmi di distribuzione dei pod non standard, ora è possibile creare set di configurazione aggiuntivi per il pianificatore standard e specificarne il nome nello stesso campo del pod «.spec.schedulerName». Stato — alfa.
- dichiarata stabile
- Scalabilità
- la possibilità di specificare nel manifesto HPA il grado di aggressività nel cambiare il numero di pod in esecuzione, cioè avviare immediatamente N volte più istanze all'aumentare del carico.
- Kubelet
- ha raggiunto lo stato beta. La funzione include la distribuzione NUMA, che aiuta a evitare il degrado delle prestazioni su sistemi multi-socket.
- Stato beta la funzionalità PodOverhead, che consente di specificare in RuntimeClass un'ulteriore quantità di risorse necessarie per l'avvio del pod.
- supporto per HugePages, in stato alpha è stata aggiunta l'isolamento a livello di contenitore e supporto per più dimensioni di hugepages.
- endpoint per metriche /metrics/resource/v1alpha1, al suo posto si utilizza /metrics/resource
- API
- eliminata la possibilità di utilizzare i gruppi API obsoleti apps/v1beta1 e extensions/v1beta1.
- elevato allo stato beta2. Questo miglioramento trasferisce la manipolazione degli oggetti da kubectl al server API. Gli autori del miglioramento affermano che ciò permetterà di risolvere molti errori esistenti che non possono essere corretti nella situazione attuale. Hanno anche aggiunto la sezione «.metadata.managedFields», in cui propongono di memorizzare la cronologia delle modifiche all'oggetto, indicando chi, quando e cosa è stato cambiato.
- API CertificateSigningRequest stabile.
- Supporto della piattaforma Windows.
- Continua ad espandersi il supporto per Windows node. Aggiunte le versioni alfa:
- Supporto tradotto allo stato stabile
- Continua ad espandersi il supporto per Windows node. Aggiunte le versioni alfa:
Fonte: opennet.ru
