[Linux-Biella] Openshift, Kubernetes e container vari
Paolo Ciarrocchi
paolo.ciarrocchi a gmail.com
Gio 3 Ago 2017 16:13:11 CEST
Il 3 ago 2017 1:06 PM, <simone a caldana.org> ha scritto:
Il 2017-08-02 22:54 Paolo Ciarrocchi ha scritto:
Esperienza in merito?
Cosa ne pensate?
Comincerei col distinguere tra le cose (anche a beneficio di chi non
conosce l'argomento).
I container sono una tecnologia che permette la gestione delle risorse a
livello di singolo processo (o gruppo di processi). Cosa significa?
Significa che invece di avere un unico sistema con una visione globale
delle risorse file, rete, eccetera io posso definire che un certo processo
veda certi filesystem e non altri, un altro processo veda certe interfacce
di rete e non altre, e posso anche decidere quante risorse (cpu, ram, iops)
ogni processo può usare nel tempo.
I container sono una forma di virtualizzazione? No: non ci sono multiple
macchine completamente separate, ci sono semplicemente "viste" diverse del
sistema. Questo significa che il kernel è uguale per tutti i container, e
anche che l'overhead dell'uso dei container è pressochè nullo, pur
permettendo la totale separazione tra container diversi: un container non
può sapere cosa c'è al di fuori del proprio mondo, e pensa di essere da
solo nel sistema.
Docker parte dal concetto di container linux (LXC) e aggiunge le
funzionalità di imaging del filesystem e tutta una serie di servizi basali
(mappature sulla rete, risoluzione di nomi, ecc) per gestire i container
con maggior facilità sul singolo host.
Tra gli altri vantaggi dei container Docker c'è il fatto che ogni container
si porta dietro tutti gli eseguibili, le librerie e le configurazioni
necessarie a funzionare, diventando quindi indipendente dal resto del
sistema operativo sul quale sta girando (ma non, come detto prima, dal
kernel).
Il principale svataggio è che essendo solo e dovendo essere autonomo un
container deve preoccuparsi non solo delle librerie ma anche dei servizi di
cui ha eventualmente bisogno per funzionare, primi fra tutti i dati di cui
abbisogna.
L'argomento container/Docker si vede spesso in relazione al contetto di
microservices o in generale di servizi in cloud, principalmente perchè la
loro natura effimera si sposa bene con la distribuzione spinta e la natura
del cloud computing. Allo scopo di gestire grandi quantità di container ed
orchestrarne l'esecuzione su ambienti distribuiti sono nati sistemi come
Kubernetes, che forniscono servizi di clustering e alta disponibilità ai
container. Tramite un cluster Kubernetes installato su un certo numero di
macchine possiamo quindi assicurarci che ci siano sempre K container di
quel tipo, J di quell'altro eccetera, assicurandoci che il servizio offerto
da un certo tipo di container sia sempre disponibile.
Un altro concetto che si trova spesso negli ambienti cloud/microservizi (ma
non solo) è quello del Continous Deployment, cioè la capacità di portare in
produzione in maniera automatica e controllata le modifiche fatte ad un
servizio. I sistemi di CD molto spesso contengono servizi di Continous
Integration (cioè la compilazione e il testing automatico di ogni versione
prodotta dagli sviluppatori). Inoltre sistemi molto complessi hanno la
necessità di essere configurati e gestiti da personale separato rispetto a
quallo che sviluppa il software. Per facilitare tutto questo nascono
progetti come Openshift, che forniscono un ambiente integrato che permette
di passare dal dal sorgente al servizio ridondato in produzione senza
soluzione di continuità.
Openshift è un sistema di CD/CI multitenant (in grado quindi con un'unica
istanza di offrire i propri servizi a multipli utenti isolati e separati)
che usa Kubernetes per deployare in alta affidabilità i container docker
prodotti dal servizio di CI.
Piacere di rileggerti Simone.
Mi riprometto di commentare più in dettaglio dopo aver fatto la formazione
in Red Hat.
Due note:
Kubernetes nasce come progetto Google ma ora è open source e ampiamente
sviluppato anche da Red Hat
VM Vs Container: un modo per "visualizzare" le differenze concettuali è il
paragone "casa vs appartamento".
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://list.bilug.it/pipermail/linux/attachments/20170803/5d06fc81/attachment-0001.html>
Maggiori informazioni sulla lista
Linux