11 strumenti che migliorano Kubernetes

11 strumenti che migliorano Kubernetes

Non tutte le piattaforme server, anche le più potenti e scalabili, soddisfano tutte le esigenze così come sono. Sebbene Kubernetes funzioni alla grande da solo, potrebbe non avere i pezzi giusti per essere completo. Troverai sempre un caso speciale che ignora le tue necessità o in cui Kubernetes non funzionerà su un'installazione predefinita, come il supporto del database o il funzionamento del CD.

È qui che compaiono componenti aggiuntivi, estensioni e altre chicche per questo orchestratore di container, supportato dalla più ampia community. In questo articolo, ci saranno 11 delle cose migliori che abbiamo trovato. Noi stessi dentro Southbridge sono molto interessanti e abbiamo in programma di affrontarli praticamente: smontarli in viti e dadi e vedere cosa c'è dentro. Alcuni di essi completeranno perfettamente qualsiasi cluster Kubernetes, mentre altri aiuteranno a risolvere compiti particolari che non sono implementati nella tipica distribuzione Kubernetes.

Gatekeeper: gestione delle politiche

Progetto Agente di politica aperto (OPA) offre la possibilità di creare policy in cima agli stack di applicazioni cloud in Kubernetes, dall'ingresso alla mesh di servizi. Gatekeeper offre a Kubernetes la capacità nativa di applicare automaticamente le policy sul cluster e fornisce anche l'ispezione per eventuali eventi o risorse che violano la policy. Tutto questo è gestito dal meccanismo Kubernetes relativamente nuovo, il gestore di ammissione Webhooks, che si attiva quando le risorse cambiano. Con Gatekeeper, le policy OPA diventano un'altra parte dello stato del tuo cluster Kubernetes senza la necessità di una supervisione costante.

Gravità: cluster Kubernetes portatili

Se desideri distribuire un'applicazione a Kubernetes, molte applicazioni dispongono di un grafico Helm che guida e automatizza questo processo. Ma cosa succede se vuoi prendere il tuo cluster Kubernetes "così com'è" e distribuirlo da qualche altra parte?

Gravità acquisisce istantanee dei cluster Kubernetes, del loro registro per le immagini del contenitore e delle applicazioni in esecuzione denominate "pacchetti di applicazioni". Tale pacchetto, che è un file normale .tar, può replicare il cluster ovunque Kubernetes possa essere eseguito.

Gravity verifica inoltre che l'infrastruttura di destinazione si comporti come l'infrastruttura di origine e che l'ambiente Kubernetes sulla destinazione sia disponibile. La versione a pagamento di Gravity aggiunge anche funzionalità di sicurezza, tra cui RBAC e la possibilità di sincronizzare le impostazioni di sicurezza tra diverse distribuzioni di cluster.

L'ultima major release, Gravity 7, può inserire un'immagine Gravity in un cluster Kubernetes esistente, invece di creare un cluster completamente nuovo dall'immagine. Gravity 7 può funzionare anche con i cluster installati senza utilizzare l'immagine Gravity. Gravity supporta anche SELinux e funziona in modo nativo con il gateway SSH di Teleport.

Kaniko: creazione di container in un cluster Kubernetes

La maggior parte delle immagini del contenitore sono create su sistemi esterni allo stack del contenitore. Tuttavia, a volte è necessario creare l'immagine all'interno di uno stack di container, ad esempio da qualche parte in un container in esecuzione o in un cluster Kubernetes.

Kaniko crea container all'interno di un ambiente container, ma senza dipendere da un servizio di containerizzazione, come Docker. Invece, Kaniko estrae il file system dall'immagine di base, esegue tutti i comandi di build dello spazio utente sopra il file system estratto, scattando un'istantanea del file system dopo ogni comando.

Nota: Kaniko è attualmente (maggio 2020, ca. traduttore) non può creare contenitori Windows.

Kubecost: opzioni di costo di avvio di Kubernetes

La maggior parte degli strumenti di amministrazione di Kubernetes si concentra sulla facilità d'uso, sul monitoraggio, sulla comprensione del comportamento all'interno di un pod e così via. Ma per quanto riguarda il monitoraggio del costo - in rubli e copechi - associato al lancio di Kubernetes?

Kubecost elabora i parametri Kubernetes in tempo reale, ottenendo informazioni sui costi aggiornate dai cluster in esecuzione presso i principali fornitori di servizi cloud, visualizzate in un pannello con il costo mensile per cluster. I prezzi per RAM, tempo CPU, GPU e sottosistema disco sono suddivisi per componenti Kubernetes (contenitore, pod, servizio, ecc.)

Kubecost tiene traccia anche del costo delle risorse non cluster come i bucket Amazon S3, sebbene questo sia limitato da AWS. I dati di costo possono essere inviati a Prometheus in modo da poterli utilizzare per modificare il comportamento del cluster a livello di codice.

Kubecost è gratuito se hai abbastanza 15 giorni di dati di registro. Per funzionalità aggiuntive, i prezzi partono da $ 199 al mese per il monitoraggio di 50 nodi.

KubeDB: esecuzione di database di battaglia in Kubernetes

I database sono anche difficili da eseguire in modo spettacolare in Kubernetes. Troverai operatori Kubernetes per MySQL, PostgreSQL, MongoDB e Redis, ma hanno tutti degli svantaggi. Inoltre, il tipico set di funzionalità di Kubernetes non risolve direttamente la maggior parte dei problemi del database definiti.

Kube DB ti aiuta a creare le tue istruzioni Kubernetes per la gestione del database. Esecuzione di backup, clonazione, monitoraggio, istantanee e creazione di database dichiarativi sono le sue parti costitutive. Si noti che il supporto delle funzionalità dipende dal database. Ad esempio, la creazione di un cluster funziona per PostgreSQL, ma non per MySQL (già c'è, come giustamente sottolineato dnbstd, ca. traduttore).

Kube-monkey: Chaos Monkey per Kubernetes

Il metodo di stress test più privo di errori è considerato un guasto casuale. Questa teoria è al centro di Chaos Monkey di Netflix, uno strumento di ingegneria caotico che spegne casualmente macchine virtuali e contenitori dell'ambiente di produzione per "incentivare" gli sviluppatori a costruire sistemi più resilienti. kube-scimmia - implementazione della stessa teoria di base di stress test per i cluster Kubernetes. Funziona uccidendo in modo casuale i moduli nel cluster designato e può anche essere impostato per essere eseguito a un intervallo di tempo specifico.

Controller di ingresso Kubernetes per AWS

Kubernetes fornisce un servizio di bilanciamento del carico esterno e servizi di rete del cluster tramite un servizio chiamato Ingresso AWS fornisce funzionalità di bilanciamento del carico ma non le raggruppa automaticamente con le stesse funzionalità di Kubernetes. Controller di ingresso Kubernetes per AWS colma questo divario.

Gestisce automaticamente le risorse AWS per ogni ingresso nel cluster, creando sistemi di bilanciamento del carico per nuove risorse in ingresso ed eliminando i sistemi di bilanciamento del carico quando le risorse vengono rimosse. Utilizza CloudFormation per assicurarsi che lo stato del cluster rimanga coerente. Supporta anche le impostazioni di CloudWatch Alarm e gestisce automaticamente altri elementi utilizzati nel cluster, come i certificati SSL e i gruppi Auto Scaling di EC2.

Kubespray: installazione automatica di Kubernetes

Kubespray automatizza l'installazione di un cluster Kubernetes pronto per la produzione, dall'installazione su server hardware ai principali cloud pubblici. Utilizza Ansible (Vagrant opzionale) per avviare la distribuzione e creare un cluster ad alta disponibilità da zero con la tua scelta di componenti aggiuntivi di rete (come Flannel, Calico, ecc.) sulla tua scelta di distribuzione Linux popolare quando installato su server hardware.

Skaffold: sviluppo iterativo per Kubernetes

Scaffold - uno degli strumenti di Google utilizzati per organizzare i CD delle applicazioni in Kubernetes. Non appena apporti modifiche al codice sorgente, skaffold lo rileva automaticamente, avvia la creazione e la distribuzione e ti avvisa in caso di errori. Skaffold funziona completamente sul lato client, quindi potrebbero esserci piccole sfumature con l'installazione o l'aggiornamento. Può essere utilizzato con pipeline CICD esistenti e interagire con alcuni strumenti di compilazione esterni, principalmente Bazel di Google.

Teresa: Il PaaS più semplice su Kubernetes

Teresa è un sistema di distribuzione delle applicazioni che esegue un semplice PaaS su Kubernetes. Gli utenti in team possono distribuire e gestire le proprie applicazioni. Questo rende le cose un po' più semplici per le persone che si fidano di questa applicazione e non vogliono avere a che fare con Kubernetes e tutte le sue complessità.

Inclinazione: trasmette gli aggiornamenti dei container ai cluster Kubernetes

inclinazione, sviluppato da Windmill Engineering, monitora le modifiche a diversi Dockerfile e quindi distribuisce progressivamente i contenitori appropriati al cluster Kubernetes. In sostanza, permette di aggiornare il cluster di produzione in tempo reale semplicemente aggiornando i Dockerfile. Tilt viene compilato all'interno del cluster, il codice sorgente è tutto ciò che deve essere modificato. Puoi anche acquisire un'istantanea dello stato del cluster e acquisire le condizioni di errore direttamente da Tilt per condividerle con i membri del team per il debug.

PS Tutti questi strumenti che abbiamo ripetutamente inserito Southbridge sondato con le nostre mani curiose. Per presentare pratiche reali già (si spera!) agli intensivi offline di febbraio. Base Kubernetes 8-10 febbraio 2021. E Kubernetes Mega 12-14 febbraio. Onestamente, ci mancava anche l'atmosfera calda ed energica dell'apprendimento offline. Non importa quanto siano avanzate le tecnologie, non sostituiranno la comunicazione umana dal vivo e un'atmosfera speciale quando si riuniscono persone che la pensano allo stesso modo.

Fonte: habr.com

Aggiungi un commento