11 strumenti che rendono Kubernetes migliore

11 strumenti che rendono Kubernetes migliore

Non tutte le piattaforme server, anche le più potenti e scalabili, soddisfano tutte le esigenze, così come sono. Anche se Kubernetes funziona perfettamente da solo, potrebbe mancare dei componenti necessari per la completezza. Troverai sempre un caso particolare che ignora la tua necessità, oppure in cui Kubernetes non funzionerà con l'installazione predefinita, come nel caso del supporto per database o dell'implementazione della CD.

Ecco che entrano in gioco i plugin, le estensioni e altre chicche per questo orchestratore di container, supportati da una vasta comunità. In questo articolo troverai le 11 migliori cose che abbiamo scoperto. Sono molto interessanti anche per noi, e intendiamo esaminarle praticamente - smontarle per vedere cosa c'è dentro. Southbridge Alcuni di essi si integrano perfettamente in qualsiasi cluster Kubernetes, mentre altri aiutano a risolvere problemi specifici non implementati nella distribuzione standard di Kubernetes.

Gatekeeper: gestione delle politiche

Progetto Open Policy Agent (OPA) fornisce la possibilità di creare politiche sopra gli stack applicativi nel cloud in Kubernetes, partendo dall'ingresso fino al service mesh. Gatekeeper offre una possibilità nativa di Kubernetes per applicare forzatamente politiche nel cluster in modo automatico, e fornisce anche la verifica di eventi o risorse che violano la politica. Tutto ciò è gestito tramite un nuovo meccanismo di Kubernetes, il gestore di accesso Webhook, che viene attivato quando le risorse vengono modificate. Con Gatekeeper, le politiche OPA diventano un'altra parte dello stato del tuo cluster Kubernetes, senza necessità di supervisione continua.

Gravity: cluster Kubernetes portabili

Se desideri distribuire un'applicazione in Kubernetes, molte applicazioni hanno un Helm chart che guida e automatizza questo processo. Ma cosa accade se vuoi prendere il tuo cluster Kubernetes 'così com'è' e distribuirlo da qualche altra parte?

Gravity effettua snapshot dello stato dei cluster Kubernetes, del loro registry per le immagini dei container, così come delle applicazioni in esecuzione, chiamate 'pacchetti applicativi'. Un tale pacchetto, costituito da un file normale, .tarpuò replicare il cluster ovunque possa funzionare Kubernetes.

Gravity verifica anche che l'infrastruttura target si comporti allo stesso modo di quella originale e che l'ambiente Kubernetes sul target sia accessibile. La versione a pagamento di Gravity aggiunge anche funzionalità di sicurezza, tra cui RBAC e la possibilità di sincronizzare le impostazioni di sicurezza su diverse implementazioni di cluster.

L'ultima versione principale, Gravity 7, può distribuire un'immagine di Gravity in un cluster Kubernetes esistente, invece di distribuire un cluster completamente nuovo a partire dall'immagine. Gravity 7 può anche funzionare con cluster installati senza utilizzare l'immagine di Gravity. Inoltre, Gravity supporta SELinux e funziona nativamente con il gateway Teleport SSH.

Kaniko: Costruzione di container in un cluster Kubernetes

La maggior parte delle immagini dei container viene costruita su sistemi al di fuori dello stack dei container. Tuttavia, a volte è necessario costruire un'immagine all'interno dello stack dei container, ad esempio in un container in esecuzione o in un cluster Kubernetes.

Kaniko esegue la costruzione dei container all'interno di un ambiente containerizzato, ma senza dipendere dal servizio di containerizzazione, come Docker. Invece, Kaniko estrae il file system dall'immagine di base, esegue tutti i comandi di costruzione nello spazio utente sopra il file system estratto, creando un'istantanea del file system dopo ogni comando.

Nota: Kaniko attualmente (maggio 2020, nota del traduttore) non può costruire container Windows.

Kubecost: Opzioni di costo per l'esecuzione di Kubernetes

La maggior parte degli strumenti di amministrazione di Kubernetes è focalizzata sulla facilità d'uso, sul monitoraggio, sulla comprensione del comportamento all'interno dei pod, ecc. Ma cosa dire dell'osservazione del costo — in rubli e copechi — associato all'esecuzione di Kubernetes?

Kubecost gestisce le opzioni di Kubernetes in tempo reale, portando informazioni sui costi attuali dai cluster attivi da fornitori di servizi cloud principali, visualizzati su un pannello con i costi mensili di ciascun cluster. I prezzi per memoria operativa, tempo della CPU, GPU e sottosistema disco sono suddivisi per componenti di Kubernetes (container, pod, servizio, ecc.)

Kubecost tiene anche traccia dei costi delle risorse esterne al cluster, come i bucket Amazon S3, sebbene sia limitato ad AWS. I dati sui costi possono essere inviati a Prometheus, in modo da poterli utilizzare per modificare il comportamento del cluster tramite programmazione.

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

KubeDB: Esecuzione di database di produzione in Kubernetes

Eseguire database in modo efficace in Kubernetes può essere abbastanza complesso. Troverai operatori Kubernetes per MySQL, PostgreSQL, MongoDB e Redis, ma ognuno di essi ha dei limiti. Inoltre, il set di funzionalità standard di Kubernetes non riesce a risolvere direttamente la maggior parte dei problemi specifici legati ai database.

KubeDB ti aiuta a creare i tuoi operatori Kubernetes per gestire i database. L'esecuzione di backup, il cloning, il monitoraggio, la creazione di snapshot e la creazione dichiarativa delle basi fanno parte delle sue componenti. Tieni presente che il supporto delle funzionalità dipende dal database. Ad esempio, la creazione di cluster funziona per PostgreSQL, ma non per MySQL (ha già c'è, come giustamente osservato dnbstd, nota del traduttore).

Kube-monkey: Chaos Monkey per Kubernetes

Il modo più sicuro per effettuare stress test è attraverso guasti casuali. Questa teoria è alla base di Chaos Monkey di Netflix, uno strumento di ingegneria casuale che spegne casualmente macchine virtuali e container nell'ambiente di produzione per 'stimolare' gli sviluppatori a creare sistemi più resilienti. Kube-monkey è l'implementazione della stessa teoria di stress testing per i cluster Kubernetes. Funziona uccidendo casualmente i pod nel cluster che hai assegnato, e può essere configurato per operare in un intervallo di tempo specifico.

Kubernetes Ingress Controller per AWS

Kubernetes fornisce un bilanciatore di carico esterno e servizi di rete di cluster tramite un servizio chiamato Ingress AWS offre funzionalità di bilanciamento del carico, ma non le associa automaticamente a funzionalità simili di Kubernetes. Kubernetes Ingress Controller per AWS colma questa lacuna.

Gestisce automaticamente le risorse AWS per ciascun oggetto ingress nel cluster, creando bilanciatori di carico per le nuove risorse ingress e rimuovendo i bilanciatori di carico al momento della cancellazione delle risorse. Utilizza CloudFormation per garantire che lo stato del cluster rimanga integro. Supporta anche impostazioni di CloudWatch Alarm e gestisce automaticamente altri elementi utilizzati nel cluster, come certificati SSL e gruppi di scalabilità automatica EC2.

Kubespray: Installazione automatica di Kubernetes

Kubespray automattizza l'installazione di un cluster Kubernetes pronto per l'uso industriale, partendo dall'installazione su server fisici e arrivando ai principali cloud pubblici. Utilizza Ansible (Vagrant — facoltativo) per avviare il deployment e creare un cluster ad alta disponibilità da zero con l'aggiunta di rete che hai scelto (ad esempio Flannel, Calico e altri) sulla distribuzione Linux popolare che hai selezionato durante l'installazione su server fisici.

Skaffold: Sviluppo iterativo per Kubernetes

Skaffold — uno degli strumenti di Google utilizzati per organizzare CD delle applicazioni in Kubernetes. Non appena apporti modifiche al codice sorgente, Skaffold lo rileva automaticamente, avvia il processo di build e deployment, e ti avverte se ci sono errori. Skaffold viene eseguito completamente lato client, quindi potrebbero esserci piccole particolarità con l'installazione o gli aggiornamenti. Può essere utilizzato con pipeline CICD esistenti e interagire con alcuni strumenti di build esterni, principalmente Bazel di Google.

Teresa: Il PaaS più semplice su Kubernetes

Teresa è un sistema di deployment delle applicazioni che avvia il PaaS più semplice sopra Kubernetes. Gli utenti, suddivisi in team, possono distribuire e gestire le applicazioni di loro pertinenza. Questo semplifica un po' il lavoro a coloro che si fidano di questa applicazione e non vogliono affrontare Kubernetes e tutte le sue complessità.

Tilt: Distribuzione in tempo reale degli aggiornamenti dei container nei cluster Kubernetes

Tilt, sviluppato da Windmill Engineering, monitora le modifiche a diversi file Dockerfile e quindi distribuisce progressivamente i container corrispondenti nel cluster Kubernetes. In sostanza, consente di aggiornare un cluster in produzione in tempo reale semplicemente aggiornando i file Dockerfile. Tilt esegue la build all'interno del cluster, il codice sorgente è tutto ciò che deve essere modificato. Puoi inoltre fare uno snapshot dello stato del cluster e registrare le condizioni errori direttamente da Tilt per condividerle con i membri del team per il debug.

P.S. Tutti questi strumenti li abbiamo sperimentati ripetutamente con le nostre mani curiose. Southbridge Per presentare pratiche reali già (spero!) nei workshop offline di febbraio. Base Kubernetes 8–10 febbraio 2021. E Mega Kubernetes 12–14 febbraio. Onestamente, anche noi ci siamo mancati l'atmosfera calorosa e ricca di energia dell'apprendimento in presenza. Qualunque siano le tecnologie avanzate, non possono sostituire la comunicazione umana e l'atmosfera speciale che si crea quando si riuniscono le persone affini.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster