Rilascio di Kubernetes 1.18, un sistema per la gestione di un cluster di container isolati

pubblicato rilascio della piattaforma di orchestrazione dei contenitori Kubernet 1.18, che consente di gestire un cluster di contenitori isolati nel suo complesso e fornisce meccanismi per la distribuzione, la manutenzione e il ridimensionamento delle applicazioni in esecuzione nei contenitori. Il progetto è stato originariamente creato da Google, ma poi trasferito su un sito indipendente supervisionato dalla Linux Foundation. La piattaforma si posiziona come una soluzione universale sviluppata dalla comunità, non legata ai singoli sistemi e in grado di funzionare con qualsiasi applicazione in qualsiasi ambiente cloud. Il codice Kubernetes è scritto in Go and distribuito da concesso in licenza con Apache 2.0.

Fornisce funzioni per la distribuzione e la gestione dell'infrastruttura, come la manutenzione del database DNS, il bilanciamento del carico,
distribuzione dei contenitori tra i nodi del cluster (migrazione dei contenitori in base ai cambiamenti di carico e alle esigenze di servizio), controlli di integrità a livello di applicazione, gestione degli account, aggiornamento e ridimensionamento dinamico di un cluster in esecuzione, senza fermarlo. È possibile distribuire gruppi di contenitori con operazioni di aggiornamento e annullamento per l'intero gruppo contemporaneamente, nonché divisione logica del cluster in parti con divisione delle risorse. È disponibile il supporto per la migrazione dinamica delle applicazioni, per l'archiviazione dei dati di cui è possibile utilizzare sia sistemi di archiviazione locale che di rete.

La versione Kubernetes 1.18 include 38 modifiche e miglioramenti, di cui 15 sono stati spostati allo stato stabile e 11 allo stato beta. 12 nuove modifiche sono proposte in stato alpha. Durante la preparazione della nuova versione, gli stessi sforzi sono stati mirati sia a perfezionare varie funzionalità sia a stabilizzare le capacità sperimentali, nonché ad aggiungere nuovi sviluppi. Principali modifiche:

  • kubectl
    • Aggiunto da Una versione alpha del comando "kubectl debug", che consente di semplificare il debug nei pod avviando contenitori temporanei con strumenti di debug.
    • Dichiarato stabile il comando “kubectl diff”, che ti permette di vedere cosa cambierà nel cluster se applichi il manifest.
    • RIMOSSO tutti i generatori del comando "kubectl run", tranne il generatore per l'esecuzione di un singolo pod.
    • Cambiato flag “--dry-run”, a seconda del suo valore (client, server e none), l'esecuzione di prova del comando viene eseguita sul lato client o server.
    • codice kubectl evidenziato in un archivio separato. Ciò ha consentito di disaccoppiare kubectl dalle dipendenze interne di Kubernetes e ha reso più semplice importare codice in progetti di terze parti.
  • Ingresso
    • È iniziata modifica del gruppo API per Ingress in networking.v1beta1.
    • Aggiunto nuovi campi:
      • pathType, che consente di specificare come verrà confrontato il percorso nella richiesta
      • IngressClassName sostituisce l'annotazione kubernetes.io/ingress.class, dichiarata deprecata. Questo campo specifica il nome dell'oggetto speciale InressClass
    • Aggiunto un oggetto IngressClass, che indica il nome del controller di ingresso, i suoi parametri aggiuntivi e il segno del suo utilizzo per impostazione predefinita
  • Servizi
    • Aggiunto il campo AppProtocol, in cui è possibile specificare quale protocollo utilizza l'applicazione
    • Tradotto in stato beta e abilitato per impostazione predefinita EndpointSlicesAPI, che è un sostituto più funzionale per gli Endpoint regolari.
  • Rete
    • Sostegno IPv6 è stato spostato allo stato beta.
  • Dischi permanenti. La seguente funzionalità è stata dichiarata stabile:
  • Configurazione dell'applicazione
    • A ConfigMap e oggetti segreti aggiunto nuovo campo "immutabile". L'impostazione del valore del campo su true impedisce la modifica dell'oggetto.
  • Pianificatore
    • Aggiunto da possibilità di creare profili aggiuntivi per kube-scheduler. Se in precedenza era necessario eseguire ulteriori scheduler separati per implementare algoritmi di distribuzione dei pod non standard, ora è possibile creare set aggiuntivi di impostazioni per lo scheduler standard e specificarne il nome nello stesso campo pod “.spec.schedulerName”. Stato: alfa.
    • Sfratto basato sulla contaminazione dichiarato stabile
  • scalata
    • Aggiunto da la possibilità di specificare nel manifest HPA il grado di aggressività quando si modifica il numero di pod in esecuzione, ovvero, quando il carico aumenta, avviare N volte più istanze contemporaneamente.
  • kubelet
    • Gestore della topologia ricevuto lo stato beta. La funzionalità consente l'allocazione NUMA, che evita il degrado delle prestazioni sui sistemi multi-socket.
    • Stato beta ho ricevuto Funzione PodOverhead, che consente di specificare in RuntimeClass la quantità aggiuntiva di risorse necessarie per eseguire il pod.
    • allargato supporto per HugePages, nello stato alpha aggiunto isolamento a livello di contenitore e supporto per più dimensioni hugepages.
    • Eliminato endpoint per i parametri /metrics/resource/v1alpha1, viene invece utilizzato /metrics/resource
  • API
    • Infine Rimossa la possibilità di utilizzare il gruppo API obsoleto apps/v1beta1 ed extensions/v1beta1.
    • Applicazione lato server aggiornato allo stato beta2. Questo miglioramento sposta la manipolazione degli oggetti da kubectl al server API. Gli autori del miglioramento affermano che ciò risolverà molti errori esistenti che non possono essere corretti nella situazione attuale. Hanno anche aggiunto una sezione “.metadata.ownedFields”, in cui propongono di archiviare la cronologia delle modifiche agli oggetti, indicando chi, quando e cosa è cambiato esattamente.
    • Annunciato API CertificateSigningRequest stabile.
  • Supporto della piattaforma Windows.

Fonte: opennet.ru

Aggiungi un commento