Quest'anno Plesk ha deciso di inviare alcune persone a KubeCon, il principale evento mondiale dedicato a Kubernetes. Non ci sono conferenze specializzate su questo tema in Russia. Certo, si parla di K8s e tutti lo desiderano, ma un numero così elevato di aziende che lo praticano non si riunirà da nessun'altra parte. Sono stato uno dei partecipanti, in quanto lavoro su una piattaforma basata su Kubernetes.
Organizzazione
Le dimensioni della conferenza sono sorprendenti: 7000 partecipanti, un'enorme fiera. Il passaggio da una sala all'altra richiedeva 5-7 minuti. Si svolgevano simultaneamente 30 presentazioni su temi diversi. Un'enorme quantità di aziende aveva i propri stand, dove venivano estratti ottimi premi, e venivano distribuiti vari gadgets come magliette, penne e altre cose carine. Tutta la comunicazione avveniva in inglese, ma non ho avuto alcuna difficoltà. Se questo è l'unico fattore che ti impedisce di partecipare a conferenze all'estero, vai tranquillamente. L'inglese nel settore IT è più semplice dell'inglese comune grazie all'abbondanza di termini familiari che si scrivono e leggono quotidianamente nel codice e nella documentazione. Non ho avuto problemi a comprendere le presentazioni. Ho assimilato molte informazioni. Alla sera, assomigliavo a un server che aveva subito un overflow di buffer, e veniva inondato direttamente nel subconscio.
Presentazioni
Voglio parlare brevemente delle presentazioni che mi sono piaciute di più e che raccomanderei di guardare.
Questa presentazione mi ha colpito profondamente perché ha toccato un problema significativo. Abbiamo molti servizi frammentati, mantenuti e sviluppati da persone diverse nel team. Seguiamo approcci di infrastruttura come codice, ma ci sono alcune problematiche irrisolte. Esiste un repository con codice Ansible, ma lo stato attuale e l'inventario sono custoditi sul computer dello sviluppatore che esegue lo script, insieme alle credenziali. Alcune informazioni possono essere trovate in Confluence, ma non è sempre chiaro dove. Non c'è un luogo dove puoi semplicemente premere un pulsante e tutto andrà bene. Si propone di creare una descrizione e di inserire non solo il codice, ma anche gli strumenti di distribuzione nel repository. Descrivere dove trovare lo stato e le credenziali, eseguire make Install e godere del risultato. Vorrei più ordine nei servizi, seguirò le release di CNAB, lo utilizzerò, lo implementerò, convincerò. Un buon modello per la stesura del Readme nel repository.
Una grande quantità di informazioni sulle insidie nella scrittura degli operatori. Ritengo che questa presentazione sia indispensabile per chi sta per scrivere il proprio operatore per Kubernetes. Sono considerati tutti gli aspetti come gli stati, la raccolta dei rifiuti, la concorrenza e tutto il resto. Molto informativa. Mi è piaciuta molto una citazione dal codice dei volumi persistenti di Kubernetes:
K8s abbraccia la complessità dell'integrazione in nome della semplicità nella realizzazione.
Questa presentazione esplora in dettaglio uno degli elementi architettonici fondamentali del cluster — il control plane, e in particolare un insieme di controllori. Viene descritta la loro funzione e architettura, e i principi di base per creare un proprio controllore a partire da quelli esistenti.
Tra i consigli più originali c'è la raccomandazione di non mascherare situazioni inaspettate dietro un comportamento corretto del controllore, ma di modificare il comportamento in modo da segnalare al sistema l'emergere di problemi.
Un'esperienza molto interessante, con molte informazioni e ricette su ciò che è necessario considerare quando si ha un carico di lavoro davvero elevato. In Kubernetes ci sono riusciti bene e supportano 50 cluster. Hanno parlato di tutti gli aspetti per ottenere la massima prestazione. Raccomando di guardare questa presentazione prima di prendere decisioni tecniche sui cluster.
Dopo questo intervento, ho capito che è fondamentale provare Loki per la gestione dei log nei cluster e probabilmente rimanere con esso. Il punto è che Elastic è pesante. Grafana voleva sviluppare una soluzione leggera e scalabile, adatta al debug dei problemi. La soluzione si è rivelata elegante: Loki estrae le meta informazioni da Kubernetes (etichette, come Prometheus) e le utilizza per organizzare i log. In questo modo, è possibile selezionare parti dei log per servizio, trovare un pod specifico, scegliere un orario preciso e filtrare per codice errore. Questi filtri funzionano senza ricerca full-text. Così, restringendo progressivamente il campo di ricerca, si può arrivare a un errore specifico. Alla fine, viene comunque utilizzata una ricerca, ma poiché il campo è ristretto, la velocità è sufficiente senza indicizzazione. Cliccando su di essa, viene caricato il contesto: un paio di righe prima e un paio di righe di log dopo. Così, sembra un po' come cercare in un file di log e usare grep, ma è leggermente più comodo e nello stesso interfaccia dove sono le metriche. È in grado di contare il numero di occorrenze della query di ricerca. Le query di ricerca stesse sono simili al linguaggio di Prometheus e sembrano semplici. Il relatore ha sottolineato che la soluzione non è molto adatta per l'analisi. La consiglio vivamente a chiunque abbia bisogno di log, è presentata in modo molto semplice.
I processi di deployment canarino e blu-verde sono mostrati in modo molto chiaro. Consiglio di guardare questo intervento a chi non è ancora convinto. I relatori presentano la soluzione come un'estensione per il promettente sistema CI-CD ARGO. È più facile ascoltare il relatore russo rispetto agli altri relatori.
Uno degli aspetti più complessi della gestione del cluster rimane la configurazione della sicurezza, in particolare i diritti di accesso alle risorse. I primitivi integrati di K8s consentono di configurare l'autorizzazione come si vuole. Come mantenere aggiornate senza cattive conseguenze? Come capire cosa sta succedendo con i diritti di accesso e debuggare i ruoli creati? Questo intervento presenta non solo una panoramica di diversi strumenti di debugging dell'autorizzazione in k8s, ma anche raccomandazioni generali per costruire politiche semplici ed efficaci.
Altri interventi
Non consiglierò. Alcuni erano di alto livello, altri invece molto complessi. Suggerisco di dare un'occhiata a questo playlist e guardare tutto ciò che è contrassegnato come keynote. Questo permetterà di avere una visione ampia dell'industria attorno alle Cloud Native Apps, dopodiché vale la pena premere ctrl+f e cercare parole chiave, aziende, prodotti e approcci di interesse.
Ecco un link alla playlist con le presentazioni, prestale attenzione
Sugli stand delle aziende
Allo stand di Haproxy mi hanno dato una maglietta per mio figlio. Dubito che a causa di ciò sostituirò Nginx con Haproxy in produzione, ma li ricordo vividamente. Chi sa cosa faranno i nuovi proprietari con Nginx.
Allo stand di IBM, per tutti e tre i giorni ci sono stati brevi interventi, attirando gente con il sorteggio di Oculus Go, cuffie Beats e un drone. Dovevi rimanere per mezz'ora allo stand. Ho tentato la sorte due volte in tre giorni — non ha funzionato. Anche VMWare e Microsoft hanno avuto brevi presentazioni.
Allo stand di Ubuntu ho fatto ciò che sembra facessero tutti — ho scattato una foto con Shuttleworth. Un tipo socievole, si è rallegrato sapendo che la uso dal 8.04 e che il server ha funzionato per 10 anni senza dist upgrade senza un singolo blackout (in effetti senza accesso a Internet).
Ubuntu sta sviluppando il suo MicroK8s — Veloce, Leggero, Kubernetes per sviluppatori upstream
Non potevo evitare di fermarmi dal stanco Dmitry Stolyarov, ho parlato con lui della vita difficile degli ingegneri che supportano Kubernetes. Delegarà la lettura degli interventi ai suoi colleghi, ma sta preparando un nuovo formato di presentazione. Ha invitato a iscriversi al canale Flant su youtube.
IBM, Cisco, Microsoft e VMWare hanno investito moltissimo nei loro stand. Gli stand degli amici open source erano più modesti. Ho parlato con i rappresentanti di Grafana, mi hanno convinto — devo provare Loki. In effetti, sembra che la ricerca full-text nel sistema di logging sia necessaria solo per l'analisi, mentre per il troubleshooting basta un sistema come Loki. Ho parlato con gli sviluppatori di Prometheus. Non hanno pianificato di creare un lungo storage di metriche e downsampling dei dati. Raccomandano di considerare cortex e thanos come strumenti per risolvere. Ci sono stati moltissimi stand, ci sarebbe voluto un giorno intero per visitarli tutti. Una decina di soluzioni per il monitoraggio come servizio. Cinque servizi di sicurezza. Cinque servizi di performance. Una decina di interfacce utente per Kubernetes. Molti che offrono k8s come servizio. Tutti vogliono la loro fetta di mercato.
Amazon e Google hanno noleggiato spazi con erba artificiale sul tetto, allestendo lettini. Amazon distribuiva tazze e serviva limonata, mentre allo stand parlava delle novità nella gestione degli spot instances. Google regalava biscotti con il logo Kubernetes e ha creato una bella area fotografica, mentre allo stand pescava pesci enterprise di grande dimensione.
Su Barcellona
Innamorato di Barcellona. Ci sono stato per la seconda volta, la prima nel 2012 per un tour panoramico. È incredibile, ma molti fatti sono riaffiorati nella mia memoria, sono riuscito a raccontare molto ai miei colleghi, sono stato una mini-guida. L'aria fresca di mare mi ha immediatamente liberato dall'allergia. Deliziosi frutti di mare, paella, sangria. Un'architettura molto calda e soleggiata. Edifici bassi, tantissimo verde. Durante questi tre giorni abbiamo camminato circa 50 chilometri, in questa città si desidera passeggiare ancora e ancora. Tutto questo dopo le presentazioni, la sera.
Cosa ho capito di più
Sono molto felice di aver avuto l'opportunità di partecipare a questa conferenza. Ha sistematizzato ciò che prima non era ordinato. Mi ha ispirato e reso evidenti alcune cose.
Un tema ricorrente è emerso: Kubernetes non è un punto finale, ma uno strumento. Una piattaforma per costruire piattaforme.
E il compito principale di tutto questo movimento è: creare e lanciare applicazioni scalabili
Le principali direzioni su cui lavora la comunità si sono cristallizzate. Circa come in passato sono emersi i 12 fattori per le applicazioni, è emersa una lista di ciò che e come fare per l'infrastruttura nel suo complesso. Se volete, potete chiamarlo tendenze:
- Ambienti dinamici
- Cloud pubblici, ibridi e privati
- Container
- Service mesh
- Microservizi
- Infrastruttura immutabile
- API dichiarativa
Queste tecniche permettono di costruire sistemi con queste caratteristiche:
- Protetti dalla perdita di dati
- Elastici (adattabili al carico)
- Gestibili
- Osservabili (tre pilastri: monitoring, logging, tracing)
- Con la possibilità di implementare cambiamenti significativi spesso e in modo prevedibile e sicuro.
CNCF seleziona i migliori progetti (lista ristretta) e promuove tali cose:
- Automazione sana
- Codice aperto
- Libertà nella scelta del fornitore di servizi
Kubernetes è complesso. È semplice ideologicamente e nei singoli componenti, ma complesso nel suo insieme. Nessuno ha mostrato soluzioni all-in-one. Sul mercato k8s come servizio, e anche su tutto il resto del mercato, c'è il far west: il supporto viene venduto sia a 50$ che a 1000$ al mese. Ognuno si approfondisce in qualche parte e scava in essa. Qualcuno nel monitoraggio e nei dashboard, qualcuno nelle prestazioni, qualcuno nella sicurezza.
K8S, tutto sta appena cominciando!
Fonte: habr.com
