Con le aziende che cercano di utilizzare la tecnologia dei container per l'implementazione a livello di produzione, la gestione dei cluster e i motori di orchestrazione stanno guadagnando importanza. Naturalmente, Kubernetes è uno dei principali motori di orchestrazione là fuori. Pod e Nodi giocano un ruolo importante nel mondo Kubernetes. Quindi discutiamo le basi di questi componenti.
Capsule Kubernetestes
Un Pod può essere definito come una raccolta di contenitori che condividono l'archiviazione di rete e le istruzioni per il funzionamento. Funziona come un'unità. Tutti i contenitori nel Pod sono co-locati e co-programmati. È fondamentalmente un "host logico" specifico dell'applicazione.
Ecco le caratteristiche di un Kubernetes Pod:
- Archiviazione condivisa: Condivide lo spazio di archiviazione come volumi.
- IP univoco: Ha un indirizzo IP cluster univoco assegnato.
- Informazioni sul contenitore: Include informazioni sulle versioni del contenitore e istruzioni per l'esecuzione del contenitore e l'utilizzo delle porte.
Non ci sono regole rigide su come combinare i contenitori per creare un Pod. Ma l'idea è di accoppiare strettamente uno o più contenitori di applicazioni insieme. Nel mondo delle macchine fisiche o virtuali, un Pod sembrerebbe una singola macchina con l'hosting di applicazioni strettamente collegatecouple.
Quando progettano un Pod, gli sviluppatori Kubernetes dovrebbero pensare al Pod come a un'unità atomica. Quindi puoi inserire applicazioni che trarranno vantaggio dalla vicinanza. Ad esempio, puoi inserire un contenitore per Node.js e il contenitore che le fornisce i dati nello stesso Pod. In questo modo i container beneficeranno della co-location e co-scheduling in un unico Pod.
I pod dovrebbero essere facilmente sostituibili. Ogni Pod viene creato combinando uno o più contenitori di applicazioni. Quindi viene distribuito su un nodo. Rimane sul nodo fino alla sua terminazione. Se il nodo fallisce, i componenti master di Kubernetes creano Pod simili nei nodi sani del cluster.
Nodi Kubernetes
Un Nodo è definito come una macchina lavoratore. Nel primo sviluppo di Kubernetes, un nodo era chiamato servitore. Può essere una macchina fisica o virtuale. Il Master gestisce ogni Nodo. È possibile distribuire più pod su un nodo e non ci sono restrizioni sul tipo di pod che possono essere eseguiti sui nodi. Il Kubernetes Master gestisce la programmazione dei Pod tra i vari Nodi e tiene traccia delle risorse disponibili su di essi.
Ecco i componenti obbligatori di un nodo Kubernetes:
- Kubelet: Ogni nodo ha un Kubelet. È l'intermediario tra Kubernetes Master e i nodi Kubernetes. Il processo Kubelet è responsabile dell'esecuzione dei Pod e dei contenitori all'interno di quei Pod.
- Tempo di esecuzione del contenitore: È il gestore di runtime del contenitore. Estrae l'immagine del contenitore da un registro, la decomprime ed esegue l'applicazione del contenitore.
A differenza dei pod, i nodi non vengono creati direttamente da Kubernetes. Kuberenetes prende la macchina fisica o virtuale nel tuo pool di risorse nel tuo cloud o data center e crea un'astrazione. Quindi, quando Kuberenetes crea un nodo, crea un oggetto che rappresenta il nodo the.
Conclusione
Pod e Nodi sono concetti fondamentali di Kubernetes. I contenitori vengono combinati per creare carichi di lavoro Pod e quindi i Pod vengono distribuiti a nodi o macchine di lavoro. Attraverso la combinazione di Pod e Node, Kubernetes è in grado di creare potenti cluster per supportare applicazioni su larga scala.
Ulteriori studi:
- Capsule Kubernetestes
- Nodi Kubernetes
Riferimenti:
- https://kubernetes.io/docs/tutorials/kubernetes-basics/explore-intro/
- https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
- https://kubernetes.io/docs/concepts/workload/pods/pod/
- https://kubernetes.io/docs/concepts/architettura/nodi/
- Crea un cluster Kubernetes a 2 nodi in 10 minuti, video di YouTube