
Non tutte le piattaforme server, anche le più potenti e scalabili, soddisfano completamente tutte le esigenze. Anche se Kubernetes funziona ottimamente da solo, potrebbe non avere tutti i componenti necessari per essere completo. Troverai sempre un caso particolare in cui non si soddisfa una tua esigenza, o in cui Kubernetes non funziona in un'installazione predefinita — come il supporto ai database o l'integrazione con CDN.
Qui è dove entrano in gioco i plugin, le estensioni e altre utilità per questo orchestratore di container, supportati da una vasta comunità. In questo articolo esploreremo le 11 migliori risorse che abbiamo trovato. Sono davvero interessanti per noi, e abbiamo intenzione di analizzarli a fondo — smontarli a la vite e vedere cosa c'è dentro. Parte di essi arricchirà perfettamente qualsiasi cluster Kubernetes, mentre altri aiuteranno a risolvere compiti specifici non implementati nella fornitura standard di Kubernetes. Gatekeeper: gestione delle politiche
(OPA) offre la possibilità di creare politiche sopra gli stack applicativi nel cloud in Kubernetes, partendo dall'ingress fino al service mesh.
Progetto Gatekeeper offre un'applicazione nativa per Kubernetes per l'applicazione forzata delle politiche nel cluster in modo automatico, oltre a fornire il controllo di qualsiasi evento o risorsa che viola le politiche. Tutto questo viene gestito tramite un meccanismo relativamente nuovo di Kubernetes, il gestore degli accessi Webhooks, che si attiva al cambiamento delle risorse. Con Gatekeeper, le politiche OPA diventano un'altra parte dello stato del tuo cluster Kubernetes senza necessità di monitoraggio costante.
Gravity: Cluster Kubernetes portabili
Se desideri distribuire un'applicazione su Kubernetes, molte applicazioni dispongono di un Helm chart che guida e automatizza questo processo. Ma cosa succede se vuoi prendere il tuo cluster Kubernetes "così com'è" e distribuirlo da qualche altra parte?
crea istantanee dello stato dei cluster Kubernetes, dei loro registry per le immagini dei container e delle applicazioni in esecuzione, chiamate "pacchetti applicativi". Un pacchetto, che è un file normale .tar, può replicare il cluster ovunque Kubernetes può funzionare.
Gravity verifica anche che l'infrastruttura di destinazione si comporti come quella originale e che l'ambiente Kubernetes nella destinazione 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 attraverso diversi deployment di cluster.
L'ultima versione principale, Gravity 7, può implementare un'immagine di Gravity in un cluster Kubernetes esistente, invece di distribuire un nuovo cluster da zero. 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 nel cluster Kubernetes
La maggior parte delle immagini container vengono create su sistemi al di fuori dello stack dei container. Tuttavia, a volte è necessario costruire un'immagine all'interno dello stack dei container, ad esempio all'interno di un container in esecuzione o in un cluster Kubernetes.
compila i container all'interno di un ambiente container, senza dipendere da un servizio di containerizzazione come Docker. Invece, Kaniko estrae il file system dall'immagine di base, esegue tutti i comandi di compilazione nello spazio dell'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ò compilare container Windows.
Kubecost: Opzioni di costo per l'avvio di Kubernetes
La maggior parte degli strumenti di amministrazione di Kubernetes è focalizzata sulla facilità d'uso, sul monitoraggio e sulla comprensione del comportamento all'interno dei pod, ecc. Ma che dire dell'osservazione dei costi — in euro e centesimi — associati all'avvio di Kubernetes?
gestisce i parametri di Kubernetes in tempo reale, portando informazioni sui costi attuali dai cluster avviati dai principali fornitori di servizi cloud, visualizzati su un pannello con il costo mensile di ciascun cluster. I prezzi per la memoria operativa, il tempo della CPU, la GPU e il sistema di archiviazione sono suddivisi per componenti Kubernetes (container, pod, servizio, ecc.)
Kubecost tiene anche la possibilità di monitorare i 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, permettendoti di utilizzarli per modificare il comportamento del cluster in modo programmato.
Kubecost è gratuito da utilizzare se ti bastano i dati nei log per 15 giorni. Per funzionalità aggiuntive, i prezzi partono da 199$ al mese per il monitoraggio di 50 nodi.
KubeDB: Esecuzione di database in produzione su Kubernetes
Anche i database possono essere difficili da gestire efficacemente su Kubernetes. Troverai operatori Kubernetes per MySQL, PostgreSQL, MongoDB e Redis, ma ognuno di essi presenta delle limitazioni. Inoltre, l'insieme di funzionalità standard di Kubernetes non risolve direttamente la maggior parte dei problemi specifici dei database.
ti aiuta a creare i tuoi operatori Kubernetes per gestire i database. Il backup, la clonazione, il monitoraggio, la creazione di snapshot e la creazione dichiarativa dei database fanno parte delle sue funzionalità. Tieni presente che il supporto delle funzionalità dipende dal database. Ad esempio, la creazione di cluster funziona per PostgreSQL, ma non per MySQL ( è, come hai giustamente osservato , nota del traduttore).
Kube-monkey: Chaos Monkey per Kubernetes
Il metodo più efficace per il test di resilienza è considerato il guasto casuale. Questa teoria è alla base di Chaos Monkey di Netflix, uno strumento ingegneristico caotico che disattiva casualmente macchine virtuali e contenitori nell'ambiente di produzione per "stimolare" gli sviluppatori a creare sistemi più resilienti. è un'implementazione della stessa teoria di test di resilienza per i cluster Kubernetes. Funziona uccidendo casualmente i pod nel cluster che hai specificato, e può anche essere configurato per operare in determinati intervalli di tempo.
Kubernetes Ingress Controller per AWS
Kubernetes fornisce un bilanciatore di carico esterno e servizi di rete del cluster attraverso un servizio chiamato AWS offre funzionalità di bilanciamento del carico, ma non le collega automaticamente alle stesse capacità di Kubernetes. chiude questa lacuna.
Gestisce automaticamente le risorse AWS per ogni oggetto ingress nel cluster, creando bilanciatori di carico per le nuove risorse ingress e rimuovendo i bilanciatori quando le risorse vengono eliminate. Utilizza CloudFormation per garantire che lo stato del cluster rimanga coerente. Supporta anche le impostazioni di CloudWatch Alarm e gestisce automaticamente altri elementi utilizzati nel cluster, come certificati SSL e gruppi di scaling automatico EC2.
Kubespray: Installazione automatica di Kubernetes
automaticamente l'installazione di un cluster Kubernetes pronto per la produzione, partendo dall'installazione su server fisici fino ai principali cloud pubblici. Utilizza Ansible (Vagrant - opzionale) per avviare il deployment e creare un cluster altamente disponibile da zero con il tuo complemento di rete preferito (come Flannel, Calico e altri) sulla distribuzione Linux che scegli durante l'installazione su server fisici.
Skaffold: Sviluppo iterativo per Kubernetes
— uno degli strumenti di Google, utilizzato per gestire le applicazioni CD su Kubernetes. Quando apporti modifiche al codice sorgente, skaffold le rileva automaticamente, avvia la build e il deployment, avvisandoti se ci sono errori. Skaffold viene eseguito interamente lato client, quindi potrebbero esserci piccole complessità con l'installazione o l'aggiornamento. Può essere utilizzato con i pipeline CICD esistenti e interagire con alcuni strumenti di build esterni, principalmente Bazel di Google.
Teresa: Il PaaS più semplice su Kubernetes
è un sistema di deployment delle applicazioni che esegue un PaaS semplice su Kubernetes. Gli utenti, organizzati in team, possono distribuire e gestire le applicazioni a loro assegnate. Questo semplifica un po' il lavoro di coloro che si fidano di questa applicazione e non desiderano affrontare Kubernetes e le sue complessità.
Tilt: Distribuzione in tempo reale degli aggiornamenti dei container nei cluster Kubernetes
, sviluppato da Windmill Engineering, monitora le modifiche ai vari file Dockerfile e successivamente distribuisce progressivamente i contenitori corrispondenti nel cluster Kubernetes. In sostanza, consente di aggiornare un cluster di 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. È possibile anche creare un'istantanea dello stato del cluster e registrare le condizioni di attivazione degli errori direttamente da Tilt, per condividerle con i membri del team per il debug.
P.S. Tutti questi strumenti li abbiamo testati più volte con le nostre curiose mani. Per presentare pratiche reali già (spero!) nei laboratori offline a febbraio. 8–10 febbraio 2021. E 12–14 febbraio. Onestamente, ci mancano anche l'atmosfera calda ed energica dell'apprendimento offline. Qualunque siano le tecnologie avanzate, non possono sostituire l'interazione umana dal vivo e l'atmosfera speciale che si crea quando i simili si riuniscono. 12–14 febbraio. Onestamente, anche noi ci manchiamo l'atmosfera calda e carica di energia degli incontri in presenza. Qualunque sia l'avanzamento della tecnologia, nulla può sostituire la comunicazione umana e l'atmosfera speciale che si crea quando le persone con interessi simili si riuniscono.
Fonte: habr.com
