Kubernetes: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Service: Corretto errore di battitura (I invece di Il) Etichette: Modifica da mobile Modifica da web per mobile |
mNessun oggetto della modifica |
||
(18 versioni intermedie di 9 utenti non mostrate) | |||
Riga 2:
|Nome = Kubernetes
|Logo = Kubernetes_logo_without_workmark.svg
|Sviluppatore =
|SistemaOperativo = Multipiattaforma
|Genere = Software per gestione cluster
Riga 8:
|DataPrimaVersione = 7 giugno 2014
}}
'''Kubernetes''' (abbreviato '''K8s''', pronunciato /ˌk(j)uːbərˈnɛtɪs/) è un sistema [[Open source|open-source]] di [[Orchestrazione (informatica)|orchestrazione]] e gestione di [[LXC|container]].<ref>{{Cita web|url=https://github.com/kubernetes/kubernetes/}}</ref> Inizialmente sviluppato da [[Google (azienda)|Google]], adesso è mantenuto da [[Cloud Native Computing Foundation]]. Funziona con molti sistemi di containerizzazione, compreso [[Docker]].
== Architettura ==
[[File:Kubernetes.png|miniatura|494x494px|Architettura di un cluster Kubernetes]]Kubernetes è un software formato da più componenti software
Le componenti che si occupano di controllare l'esecuzione dei container applicativi sono raggruppate nel '''[[control plane]]'''. Il '''data plane''' raggruppa invece le componenti software coinvolte nelle funzionalità che gestiscono il carico di lavoro del {{chiarire|cluster}}. Il controllo del sistema avviene specificando un '''desired state''' (stato desiderato). Ogni partecipante si attiva per contribuire a mutare il sistema verso il desired state definito nel master.
===
Il master o Control Plane Node è l'attore centrale di un cluster in quanto a lui fanno riferimento tutti gli altri nodi per coordinarsi nell'esecuzione dei container. Il master si occupa solo della funzione di orchestrare i nodi e non di eseguire container applicativi. Esegue i processi della Control Plane ed essendo questi processi centrali al funzionamento del cluster, spesso il master viene replicato su più server in modo da garantire un'[[High Availability|alta disponibilità]] del servizio.
Questo componente implementa e rende disponibili le [[Application programming interface|API]] di Kubernetes, esponendo una interfaccia REST verso lo stato del cluster. Esso rappresenta l'unico canale di coordinamento e controllo, sia per i nodi che per gli operatori/amministratori.
Il controller manager si occupa costantemente di fare in modo che lo stato attuale del sistema coincida con il desired state all'interno del cosiddetto ''reconciliation loop''. Gli interventi necessari al raggiungimento del desired state vengono fatti da ''controller'' per specifiche funzionalità attivati a loro volta dal controller manager.▼
Lo [[scheduler]] decide come assegnare il carico di lavoro specificato dal desired state sui nodi che compongono il cluster. La scelta dei nodi a cui assegnare il carico dipende dall'algoritmo di allocazione usato. Nel caso più comune la scelta viene fatta in base alla disponibilità di risorse sui nodi.▼
==== Etcd ====
=== Worker Node ===
Un nodo, anche chiamato ''worker'', si occupa di eseguire il carico di lavoro secondo le modalità definite dal master. Per poter eseguire i carichi di lavoro, il nodo deve disporre di un container runtime come [[Docker]] o [[Container Linux di CoreOS|rkt]].▼
▲==== Controller manager ====
▲Il controller manager si occupa costantemente di fare in modo che lo stato attuale del sistema coincida con il desired state all'interno del cosiddetto ''reconciliation loop''. Gli interventi necessari al raggiungimento del desired state vengono fatti da ''controller'' per specifiche funzionalità attivati a loro volta dal controller manager.
L'architettura decentralizzata del cluster permette a un nodo di mantenere una continuità limitata nel supportare il carico di lavoro anche in caso di fallimento nella comunicazione col master.▼
▲==== Scheduler ====
▲Lo scheduler decide come assegnare il carico di lavoro specificato dal desired state sui nodi che compongono il cluster. La scelta dei nodi a cui assegnare il carico dipende dall'algoritmo di allocazione usato. Nel caso più comune la scelta viene fatta in base alla disponibilità di risorse sui nodi.
====
Il ''kubelet'' è il componente di control plane che controlla le risorse e gestisce il carico di lavoro su un singolo nodo. Mantiene una comunicazione col master e interviene costantemente sul nodo al fine di raggiungere e mantenere il desired state.▼
▲Un nodo, anche chiamato worker, si occupa di eseguire il carico di lavoro secondo le modalità definite dal master. Per poter eseguire i carichi di lavoro, il nodo deve disporre di un container runtime come [[Docker]].
==== kube-proxy ====
▲Generalmente un nodo è identificabile a uno a uno con un singolo server del cluster. Spesso quindi ci si riferisce a un gruppo di nodi direttamente con "cluster Kubernetes".
Il componente [[proxy]] è dedicato all'inoltro del traffico fra i nodi e alla configurazione delle regole networking sugli stessi. Tramite il proxy viene resa trasparente la gestione dell'accesso ai ''service''.
▲L'architettura decentralizzata del cluster permette a un nodo di mantenere una continuità limitata nel supportare il carico di lavoro anche in caso di fallimento nella comunicazione col master.
▲==== Kubelet ====
▲Il kubelet è il componente di control plane che controlla le risorse e gestisce il carico di lavoro su un singolo nodo. Mantiene una comunicazione col master e interviene costantemente sul nodo al fine di raggiungere e mantenere il desired state.
==== Container runtime ====
Line 62 ⟶ 60:
=== Service ===
Il ''service'' definisce come esporre dei pod su una rete interna o esterna. Il service definisce un nome che viene risolto dal DNS interno al cluster con uno dei pod a esso associati. I pod associati al service sono quelli che hanno in comune la label definita dal service. Di default un service è esposto all'interno di un cluster, ma può essere esposto anche all'esterno del cluster.<ref name="kubernetes-101-external-access">{{Cita web|url=http://www.dasblinkenlichten.com/kubernetes-101-external-access-into-the-cluster/}}</ref>
== Note ==▼
<references/>▼
== Voci correlate ==
* [[Container Linux di CoreOS]]
* [[OpenShift]]
▲== Note ==
▲<references/>
== Altri progetti ==
|