Strategia di distribuzione di Kubernetes
Trova la strategia di implementazione ottimale di Kubernetes per la tua applicazione.
Informazioni sulle opzioni di distribuzione di Kubernetes
Che il tuo obiettivo sia abbreviare il time-to-market, creare distribuzioni resilienti senza tempo di inattività, rilasciare le app e le funzionalità in modo più rapido o con maggiore frequenza oppure disporre di maggiore flessibilità operativa, la scelta della strategia di distribuzione di Kubernetes appropriata è fondamentale per ottenere resilienza per applicazioni e infrastruttura. Ogni strategia di distribuzione di Kubernetes offre vantaggi specifici per rispondere alle tue esigenze e soddisfare i tuoi obiettivi.
Come funzionano le distribuzioni in Kubernetes
Prima di implementare una strategia di distribuzione di Kubernetes, devi comprenderne i componenti e le loro interazioni.
Componenti di una distribuzione di Kubernetes
File YAML
Lo stato desiderato per i cluster Kubernetes, ovvero la configurazione dei pod, descritto da te e che serve come base per una distribuzione di Kubernetes.
Pod
Contenitori, risorse condivise e ambiente per l'esecuzione di app e flussi di lavoro.
Set di repliche
I gruppi di pod configurati in modo identico sono detti set di repliche e garantiscono che in ogni momento siano in esecuzione il tipo e il numero di pod descritti nel file YAML per una distribuzione di Kubernetes. In caso di errore di un pod, ne viene creato uno nuovo.
Kube-controller-manager
Modifica lo stato corrente del cluster in modo che corrisponda allo stato desiderato descritto nel file YAML, creando nuovi pod e set di repliche, nonché aggiornando o rimuovendo quelli esistenti.
Kube-scheduler
Determina la modalità di distribuzione di pod e set di repliche nei nodi di lavoro e distribuisce il traffico in tali nodi.
Implementazione
Il processo di riconfigurazione del cluster dallo stato corrente allo stato desiderato, nella maggior parte dei casi eseguito senza tempo di inattività.
Come funzionano le implementazioni di Kubernetes
- Crea un file YAML che descrive la configurazione dello stato desiderato del cluster.
- Applica il file YAML al cluster tramite kubectl, l'interfaccia della riga di comando di Kubernetes.
- Kubectl invia la richiesta al componente kube-apiserver, che la autentica e la autorizza prima di registrare la modifica nel database, etcd.
- Il componente kube-controller-manager monitora continuamente il sistema per rilevare le nuove richieste e fa in modo di mantenere il sistema nello stato desiderato, creando set di repliche, distribuzioni e pod nel processo.
- Dopo l'esecuzione di tutti i controller, il componente kube-scheduler individua alcuni pod nello stato "in sospeso", perché la loro esecuzione in un nodo non è ancora stata pianificata. L'utilità di pianificazione trova i nodi appropriati per i pod e quindi comunica con il kubelet in ogni nodo per acquisire il controllo e avviare la distribuzione.
Casi d''uso delle distribuzioni di Kubernetes
Crea
Implementa set di repliche e pod Kubernetes completamente nuovi.
Aggiorna
Dichiara un nuovo stato desiderato e implementa nuovi pod e set di repliche in modo controllato.
Ripristina lo stato precedente
Ripristina uno stato precedente della distribuzione di Kubernetes se lo stato corrente non è stabile.
Ridimensiona
Aumenta il numero di pod e i set di repliche nella distribuzione di Kubernetes senza modificarli.
Strategie di distribuzione di Kubernetes
La migliore strategia di distribuzione di Kubernetes per uno scenario specifico dipende da molti fattori: l'eventuale tempo di inattività che puoi sostenere, l'ambiente di distribuzione, la stabilità stimata della nuova versione o piattaforma, la necessità di testare la nuova soluzione, le informazioni che vuoi ottenere, nonché gli obiettivi aziendali e in termini di disponibilità e costi delle risorse. Ecco quattro strategie di distribuzione comuni usate dalle organizzazioni negli ambienti di produzione.
Incrementale
Il metodo predefinito di implementazione di Kubernetes è la distribuzione incrementale o in sequenza. Questa strategia prevede una lenta sostituzione dei pod, uno alla volta per evitare tempo di inattività. I pod precedenti vengono ridotti solo dopo che i nuovi pod sono pronti. Se si verificano problemi durante la distribuzione di Kubernetes, puoi sospenderla o annullarla senza portare offline l'intero cluster.
Blu/verde
In una distribuzione di tipo blu/verde, rilasci una nuova versione (blu) dell'applicazione o del flusso di lavoro mentre la versione corrente (verde) è ancora in esecuzione. In questo modo, puoi testare la versione blu in produzione esponendo nel contempo gli utenti solo alla versione verde stabile. Una volta testata, la versione blu sostituisce gradualmente quella verde.
Canary
Puoi consentire ai clienti di testare la distribuzione di Kubernetes rilasciando la nuova versione per un piccolo gruppo di persone. Eseguirai un set di repliche della nuova versione insieme alla versione corrente e quindi, trascorso un periodo di tempo specifico senza che si verifichino errori, potrai passare alla nuova versione e rimuovere quella precedente.
Test A/B
Analogamente alla strategia di distribuzione canary di Kubernetes, la strategia di test A/B prevede la scelta di un gruppo specifico di clienti come destinatario. La distribuzione tramite test A/B, tuttavia, ha l'obiettivo di verificare più della semplice stabilità di una versione e viene usata per testare l'efficacia di una versione nel raggiungimento degli obiettivi aziendali. La nuova versione viene distribuita agli utenti in base a fattori come cookie, georilevazione, sistema operativo e tipo di dispositivo e viene spesso eseguita affiancata alla versione corrente, passando alla nuova versione quando tutto funziona nel modo appropriato.
Strumenti di distribuzione di Kubernetes
Anche se per le strategie di distribuzione di Kubernetes è possibile usare la riga di comando o i file YAML, per sfruttare al meglio i cluster e le distribuzioni puoi implementare strumenti e servizi di distribuzione di Kubernetes come i seguenti.
Azure DevOps
Una catena di approvvigionamento completa per le applicazioni per automatizzare le distribuzioni di Kubernetes. Ottieni il perfetto equilibrio tra velocità e sicurezza e distribuisci il codice più rapidamente su larga scala.
Helm
Uno strumento open source per la creazione di pacchetti. Installa aggiorna e gestisci le applicazioni Kubernetes usando i grafici creati da te, crea nuove versioni, condividi e pubblica.
Servizio Azure Kubernetes (AKS)
Un servizio Kubernetes completamente gestito, sicuro e a disponibilità elevata. Distribuisci e gestisci app in contenitori nel cloud.