Nota di traduzione.: L'originale di questo testo è stato scritto da Rob Scott — ingegnere SRE di ReactiveOps, l'azienda responsabile dello sviluppo del progetto annunciato. Ci interessa molto l'idea di una validazione centralizzata di ciò che viene implementato in Kubernetes, quindi seguiamo con interesse iniziative simili.

Sono lieto di presentare — un progetto open source che aiuta a mantenere in 'salute' il cluster Kubernetes. Abbiamo creato Polaris per automatizzare alcune delle migliori pratiche adottate in ReactiveOps per garantire il funzionamento sicuro e affidabile dei cluster per un gran numero di clienti. È giunto il momento di rendere pubblico il codice sorgente.
Ancora e ancora siamo stati testimoni di come piccoli difetti nella configurazione potessero portare a gravi problemi, complicando il sonno degli ingegneri. Qualcosa di molto semplice — come una richiesta di risorse dimenticata (resource requests) — poteva compromettere l'autoscaling e persino portare a situazioni in cui i carichi di lavoro rimanessero privi di risorse. Se un tempo piccole disattenzioni nella configurazione portavano a interruzioni del servizio in produzione, ora Polaris le previene completamente.
Polaris aiuta a evitare problemi di configurazione che influenzano la stabilità, l'affidabilità, la scalabilità e la sicurezza delle vostre applicazioni. Permette di individuare facilmente i difetti nelle configurazioni dei deployment e prevenire futuri problemi. Con Polaris si può dormire sonni tranquilli, sapendo che le applicazioni sono distribuite secondo un insieme di standard ben collaudati.
Polaris è composto da due componenti chiave:
- un pannello di monitoraggio che fornisce informazioni su quanto siano correttamente configurati i deployment esistenti nel cluster;
- un webhook di convalida sperimentale che impedisce il rilascio di deployment che non soddisfano gli standard accettati.
Polaris Dashboard
Il pannello in Polaris è stato creato per fornire un modo semplice e chiaro di vedere lo stato attuale dei deployment in Kubernetes e ricevere suggerimenti per miglioramenti. Fornisce una visione completa del cluster, oltre a suddividere i risultati per categoria, namespace e deployment.

Gli standard impostati in Polaris di default sono piuttosto elevati, quindi non sorprendeteci se la valutazione risulta inferiore a quella che vi aspettavate. L'obiettivo principale di Polaris è stabilire standard elevati e mirare a una configurazione di default eccellente. Se la configurazione proposta sembra troppo rigida, può essere modificata durante il processo di configurazione del deployment, ottimizzandola per carichi di lavoro specifici.
Nella pubblicazione di Polaris, abbiamo deciso non solo di presentare lo strumento, ma anche di descrivere in dettaglio i test inclusi. Ogni verifica include un link alla documentazione pertinente, dove viene spiegato il motivo per cui riteniamo sia importante, e sono forniti link a risorse aggiuntive su questo argomento.
Polaris Webhook
Se il pannello di monitoraggio aiuta a ottenere una panoramica della configurazione attuale dei deployment, il webhook garantisce il rispetto degli standard per tutti i deployment che verranno rilasciati nel cluster.
Dopo che i problemi identificati dal pannello di monitoraggio sono stati risolti, è possibile utilizzare il webhook per fare in modo che la configurazione non scenda mai più sotto lo standard stabilito. Il webhook non permetterà di distribuire nel cluster deployment che contengono deviazioni sostanziali (di livello "error").
Il potenziale di questo webhook è incoraggiante, tuttavia, per essere considerato pronto per la produzione, sarà necessaria una attenta fase di testing. Al momento è una funzionalità sperimentale ed è parte di un nuovo progetto Open Source. Poiché può interferire con l'aggiornamento dei deployment, usatelo con cautela.
Inizio del lavoro
Spero che, visto che state ancora leggendo questo annuncio, Polaris sia uno strumento che possa risultarvi utile. Volete provare il Dashboard da soli? Distribuire il pannello nel cluster è molto semplice. Viene installato con privilegi minimi (solo lettura) e tutti i dati rimangono interni. Per distribuire il Dashboard utilizzando kubectl, eseguite:
kubectl apply -f https://raw.githubusercontent.com/reactiveops/polaris/master/deploy/dashboard.yamlOra è necessario configurare il forwarding delle porte per accedere al Dashboard tramite la porta locale 8080:
kubectl port-forward --namespace polaris svc/polaris-dashboard 8080:80Certo, ci sono molti altri modi per utilizzare e distribuire Polaris, incluso l'uso di Helm. Potete scoprire di più su questo e molto altro .
È solo l'inizio
Siamo felici di ciò che siamo già riusciti a integrare in Polaris, ma la storia non finisce qui. Stiamo preparando molti nuovi test che ci piacerebbe aggiungere per espandere le funzionalità. Stiamo anche cercando il modo migliore per implementare le regole di verifica delle eccezioni a livello di spazi dei nomi o di risorse. Se desideri informazioni aggiuntive sui nostri piani, dai un'occhiata alla .
Se hai avuto l'impressione che Polaris possa essere utile, ti preghiamo di trovare il tempo per provarlo. Accettiamo con piacere qualsiasi idea, feedback, domanda o pull request. Puoi contattarci su , in oppure nel .
P.S. dal traduttore
Leggi anche nel nostro blog:
- «»;
- «»;
- «»;
- «».
Fonte: habr.com
