Kubernetes - Architettura
In questo capitolo, discuteremo l'architettura di base di Kubernetes.
Kubernetes - Architettura cluster
Come mostrato nel diagramma seguente, Kubernetes segue l'architettura client-server. In questo caso, abbiamo master installato su una macchina e il nodo su macchine Linux separate.
I componenti chiave di master e node sono definiti nella sezione seguente.
Kubernetes - Componenti macchina principale
Di seguito sono riportati i componenti di Kubernetes Master Machine.
etcd
Memorizza le informazioni di configurazione che possono essere utilizzate da ciascuno dei nodi del cluster. È un archivio di valori chiave ad alta disponibilità che può essere distribuito tra più nodi. È accessibile solo dal server API Kubernetes poiché potrebbe contenere alcune informazioni sensibili. È un archivio di valori chiave distribuito accessibile a tutti.
Server API
Kubernetes è un server API che fornisce tutte le operazioni sul cluster utilizzando l'API. Il server API implementa un'interfaccia, il che significa che diversi strumenti e librerie possono comunicare prontamente con essa.Kubeconfigè un pacchetto insieme agli strumenti lato server che possono essere utilizzati per la comunicazione. Espone l'API Kubernetes.
Controller Manager
Questo componente è responsabile della maggior parte dei collector che regola lo stato del cluster ed esegue un'attività. In generale, può essere considerato come un daemon che viene eseguito in un ciclo non di terminazione ed è responsabile della raccolta e dell'invio di informazioni al server API. Funziona per ottenere lo stato condiviso del cluster e quindi apportare modifiche per portare lo stato corrente del server allo stato desiderato. I controller chiave sono controller di replica, controller di endpoint, controller dello spazio dei nomi e controller dell'account di servizio. Il controller manager esegue diversi tipi di controller per gestire nodi, endpoint, ecc.
Scheduler
Questo è uno dei componenti chiave di Kubernetes master. È un servizio in master responsabile della distribuzione del carico di lavoro. È responsabile del monitoraggio dell'utilizzo del carico di lavoro sui nodi del cluster e quindi del posizionamento del carico di lavoro su cui sono disponibili le risorse e accetta il carico di lavoro. In altre parole, questo è il meccanismo responsabile dell'allocazione dei pod ai nodi disponibili. Lo scheduler è responsabile dell'utilizzo del carico di lavoro e dell'allocazione del pod al nuovo nodo.
Kubernetes - Componenti del nodo
Di seguito sono riportati i componenti chiave del server Node necessari per comunicare con il master Kubernetes.
Docker
Il primo requisito di ogni nodo è Docker che aiuta a eseguire i contenitori di applicazioni incapsulati in un ambiente operativo relativamente isolato ma leggero.
Servizio Kubelet
Questo è un piccolo servizio in ogni nodo responsabile della trasmissione di informazioni da e verso il servizio del piano di controllo. Interagisce conetcdstore per leggere i dettagli di configurazione e i valori di wright. Questo comunica con il componente master per ricevere comandi e lavorare. Ilkubeletprocess quindi si assume la responsabilità di mantenere lo stato di lavoro e il server del nodo. Gestisce le regole di rete, il port forwarding, ecc.
Servizio proxy Kubernetes
Questo è un servizio proxy che viene eseguito su ogni nodo e aiuta a rendere i servizi disponibili per l'host esterno. Aiuta a inoltrare la richiesta per correggere i contenitori ed è in grado di eseguire il bilanciamento del carico primitivo. Assicura che l'ambiente di rete sia prevedibile e accessibile e allo stesso tempo sia anche isolato. Gestisce pod su nodo, volumi, segreti, creazione di nuovi controlli di integrità dei contenitori, ecc.
Kubernetes: struttura master e nodi
Le seguenti illustrazioni mostrano la struttura di Kubernetes Master e Node.