Che cos'è Container Linux e dovresti usarlo?

I contenitori sono sempre più popolari. Container Linux, precedentemente noto come CoreOS, è un sistema operativo Linux progettato per semplici distribuzioni containerizzate. Questa panoramica e gli aspetti pratici di Container Linux ti diranno di più.

I contenitori sono sempre più popolari.  Container Linux, precedentemente noto come CoreOS, è un sistema operativo Linux progettato per semplici distribuzioni containerizzate.  Questa panoramica e gli aspetti pratici di Container Linux ti diranno di più.
Annuncio pubblicitario

I sistemi operativi Linux sono disponibili in una varietà di sapori. Mentre i sistemi operativi Linux come Ubuntu sono abbastanza generici, altri ancora si rivolgono a una nicchia. C'è il Kali Linux orientato alla sicurezza. Distribuzioni leggere come Xubuntu e persino Hannah Montana Linux (!). Per l'uso desktop, un sistema operativo Linux vanilla funziona bene. Tuttavia, per attività specializzate come l'esecuzione di un server, è meglio trovare una versione personalizzata.

I contenitori sono sempre più popolari. Container Linux, precedentemente noto come CoreOS, è un sistema operativo Linux progettato per semplici distribuzioni containerizzate. È uno dei più nuovi sistemi operativi Linux di nicchia I più recenti sistemi operativi Linux per ogni nicchia I nuovi sistemi operativi Linux per ogni nicchia I sistemi operativi Linux sono costantemente aggiornati, alcuni dei quali sono più sostanziali di altri. Non sei sicuro se aggiornare? Dai un'occhiata a questi nuovi sistemi operativi Linux e per vedere se dovresti provarli. Leggi di più . Dai uno sguardo a questa panoramica e un'occhiata a Container Linux.

Hands-on con container Linux: conoscenze di base

Prima di entrare in Container Linux, iniziamo con una breve panoramica dell'architettura del server. Container Linux è progettato per le distribuzioni in cluster. Una distribuzione in cluster sembra piuttosto complessa, ma è piuttosto semplice. In sostanza, un cluster di computer è composto da più server che lavorano insieme. Pertanto, funzionano come un'unica unità o sistema anziché multiplo. Inoltre, i computer in un cluster dispongono di nodi o server che svolgono la stessa funzione. Quindi un nodo è una singola macchina mentre un cluster è un gruppo di server che lavorano insieme.

Le distribuzioni di Container Linux più comuni si trovano all'interno di ambienti cluster. La distro precedentemente nota come CoreOS include anche i mezzi per far ruotare un cluster da una sola macchina. La caratteristica di definizione di Container Linux, tuttavia, è la sua dipendenza dai container.

A differenza di un sistema operativo desktop tradizionale, tutte le applicazioni vengono eseguite in contenitori. Mentre le macchine virtuali (VM) e i contenitori utilizzano metodi di virtualizzazione, i contenitori differiscono. A differenza delle macchine virtuali, i contenitori utilizzano lo stesso kernel del sistema operativo della macchina host. Poiché le app containerizzate e la macchina host utilizzano lo stesso kernel, le implementazioni dei container traggono vantaggio da una maggiore efficienza. In una configurazione di macchina virtuale, ogni VM esegue un'app più un sistema operativo guest. Funziona sopra il sistema operativo e l'hardware host.

Le distribuzioni containerizzate eseguono invece le app nei propri contenitori sopra il software di virtualizzazione. Docker rimane il più popolare software contenitore, sebbene chroot, LXC e Linux-VServer siano tra le alternative Docker.

Hands-on con container Linux: perché utilizzare i contenitori?

OK, quindi i contenitori sono un metodo di virtualizzazione. Perché optare per un ambiente containerizzato? In genere i contenitori offrono prestazioni migliori. Escludendo i sistemi operativi separati e utilizzando invece un kernel condiviso, si ottimizzano la CPU, l'archiviazione e l'efficienza della memoria.

Poiché non è necessario eseguire più istanze del sistema operativo come in una configurazione VM, è possibile eseguire più contenitori. I miglioramenti delle prestazioni derivano dalla necessità di un singolo sistema operativo. Allo stesso modo, è possibile creare contenitori più velocemente che in un ambiente di macchina virtuale. Pertanto i contenitori sono più adatti a mantenere l'agilità e consentire consegne continue e integrazione continua.

Lo sviluppo agile si concentra sull'iterazione e sul factoring nell'imprevedibilità. Puoi leggere il Manifesto Agile per ulteriori informazioni sulla filosofia agile. Tuttavia, nonostante i vantaggi dei contenitori, non è un metodo di virtualizzazione perfetto. Poiché i contenitori condividono il kernel del sistema operativo host, esiste un rischio per la sicurezza. Qualsiasi vulnerabilità o violazione che interessa un contenitore ottiene l'accesso al sistema operativo. Ma c'è una soluzione alternativa per far funzionare le app containerizzate su un sistema operativo all'interno di una macchina virtuale. Ciò garantisce che il sistema operativo della macchina host sia isolato dal sistema operativo host del contenitore singolare.

La containerizzazione richiede inoltre che i contenitori utilizzino lo stesso sistema operativo. Con le macchine virtuali, ogni applicazione ottiene il proprio sistema operativo. Quindi non è possibile eseguire app progettate per Windows Server in un ambiente Linux containerizzato e viceversa.

Hands-on con container Linux: che cosa è Container Linux?

Aggiornamento CoreOS Core

CoreOS, o Container Linux come viene ora chiamato, è un sistema operativo Linux open-source. È una distro leggera destinata alle distribuzioni in cluster. Più specificamente, CoreOS si concentra su implementazioni semplici, affidabili e scalabili. Non troverai un gestore di pacchetti. Invece Container Linux richiede che tutte le app vengano eseguite all'interno dei contenitori. Container Linux utilizza Chrome OS come base. Pertanto, Container Linux rimane piuttosto leggero. Per testare, ho eseguito il sistema operativo Linux precedentemente noto come CoreOS in una macchina virtuale su un computer portatile HP Envy m6-1205dx AMD A10 obsoleto. Il consumo di risorse del sistema è rimasto piuttosto basso.

Poiché Container Linux non rispetta più le tradizionali funzionalità del sistema operativo Linux desktop, mantiene la distribuzione leggera. A differenza di un sistema operativo desktop, non troverai un gestore di pacchetti. Invece, tutte le applicazioni vengono eseguite come contenitori Docker. Questo rende la portabilità e l'isolamento del servizio. Se vuoi un ambiente desktop, sei sfortunato. Container Linux manca di un'interfaccia utente grafica. Invece, tutto è basato sulla riga di comando. La dashboard CoreUpdate offre informazioni sullo stato della macchina, sui servizi in esecuzione e sulla salute dei cluster. Ma è disponibile solo come componente nell'abbonamento Premium Managed Linux.

Container Architettura Linux

Container Linux è leggero e progettato per containerizzare e clustering. Poiché non esiste un ambiente desktop, le funzioni di configurazione sono diverse rispetto a un sistema operativo Linux come CentOS o Ubuntu. All'avvio iniziale, Container Linux carica un file di configurazione cloud. Dovrai inserire le informazioni in cloud-config. Questo può essere un po 'complicato, specialmente per chi non ha familiarità con il cloud-config. Ma è un file essenziale che dà a Container Linux la possibilità di caricare i servizi essenziali, modificare i parametri e gestire i cluster.

Inoltre, i daemon di etcd e fleet rimangono parte integrante di Container Linux. Entrambi questi servizi vengono avviati all'avvio per impostazione predefinita. Inoltre, all'avvio il file di configurazione del cloud consente all'host di sapere come unire un cluster esistente. Il daemon etcd distribuisce e archivia i dati per gli host all'interno di un cluster. È essenziale per mantenere le configurazioni e l'individuazione dei servizi. Il demone della fleet è simile a un init distribuito. Questo daemon si collega a systemd init per gli host in un cluster e si occupa di attività come la pianificazione dei servizi.

Ogni sistema in un cluster fleet esegue solo un demone fleetd . Questo demone presuppone due responsabilità principali che agiscono sia come agente che come motore. Come motore, il daemon esegue le decisioni di pianificazione. Mentre il lato agente esegue unità. Nel cluster di flotta, etcd è l'unico datastore. Tali informazioni come presenza cluster, stato unità e file unità sono tutte memorizzate all'interno del daemon etcd . Inoltre, è il mezzo per la comunicazione di agenti e motori di flotte.

Hands-On con Linux Container: chi dovrebbe usarlo?

Container Linux è gratuito da scaricare, leggero e abbastanza semplice da installare in una macchina virtuale. Chiunque abbia bisogno di implementazioni rapide, scalabili e containerizzate dovrebbe optare per Container Linux. Soprattutto gli amministratori di sistema e gli amministratori di database trarranno il massimo vantaggio da Container Linux. Poiché Container Linux non ha un ambiente desktop, è più adatto per la gestione dei cluster e in un'impostazione server. Se stai cercando un sistema operativo per server Linux, Container Linux è uno dei 12 migliori server Linux per la distribuzione 12 I migliori sistemi operativi per Linux Server e chi dovrebbe usarli 12 I migliori sistemi operativi per Linux Server e chi dovrebbe usarli Costruire un server? Linux è l'ideale, in genere offre permessi avanzati, maggiore flessibilità e stabilità. Ma quale scegliere? Scopri i 12 migliori sistemi operativi per server Linux e chi dovrebbe usarli. Per saperne di più s.

Air Pair offre un eccellente resoconto sugli incentivi CoreOS. Questo articolo cita l'alta disponibilità, la manutenzione dell'ambiente di produzione, il controllo della versione del software e il file etcd come disegni principali per l'utilizzo di Container Linux. In particolare, c'è anche una comunità open source incredibilmente dedicata. Container Linux è pensato per gli utenti Linux esperti. La documentazione della guida, sebbene completa, presuppone un grado moderato di familiarità con Linux. Gli utenti principianti e principianti potrebbero avere un po 'di problemi con l'installazione iniziale.

Più in particolare, cloud-config potrebbe essere una sfida. Nella sezione commenti di un video di installazione di CoreOS, l'utente di YouTube Setyoso Nugroho ha dichiarato: "Bel tutorial! Abbastanza confuso quando si apprende la configurazione del file # cloud-config in CoreOS. "Sebbene la configurazione non sia molto difficile, Container Linux assume una forte conoscenza delle funzionalità di Linux come l'editor VIM.

Presto con Container Linux: come installare

Ci sono molti modi per installare Container Linux. Secondo il sito web CoreOS, le piattaforme ufficiali includono Amazon EC2, DigitalOcean, Microsoft Azure, bare metal e OpenStack. Oltre a Oracle Linux, CentOS e Suse, CoreOS è uno dei pochi sistemi operativi Linux compatibili con Azure Microsoft ama davvero Linux dopo tutto? Dopo tutto, Microsoft ama davvero Linux? Microsoft e Linux hanno avuto una relazione tumultuosa. Nel corso degli anni, i CEO hanno espresso il desiderio di vedere Linux scomparire, ma in questi giorni la storia è diversa. Dopotutto, a Microsoft piace davvero Linux? Leggi di più . Grazie a una community vivace, sono supportate anche piattaforme come Packet, Rackspace, Brightbox, VirtualBox e VMware. Ho trovato che il metodo più semplice era installare Container Linux su VirtualBox usando un file ISO. Ecco una guida rapida su come utilizzare VirtualBox Come utilizzare VirtualBox: Guida per l'utente Come utilizzare VirtualBox: Guida per l'utente Con VirtualBox è possibile installare e testare facilmente più sistemi operativi. Ti mostreremo come configurare Windows 10 e Ubuntu Linux come macchina virtuale. Leggi di più .

Configurazione di VirtualBox

Apri VirtualBox e ti verrà richiesto il nome di una macchina virtuale, il tipo di sistema operativo e la versione. Ho chiamato il mio semplicemente CoreOS. Per il tipo, selezionare Linux. Come versione, usa Linux 2.6 / 3.x / 4 / x (64-bit). Fare clic su Avanti.

Inizio di CoreOS

Ora dovrai allocare la tua RAM. CoreOS suggerisce un minimo di 1024 MB di RAM.

CoreOS RAM

Dopo aver selezionato la tua RAM, dovrai aggiungere un disco rigido virtuale. Utilizzare l'opzione di creazione di un disco rigido virtuale ora.

Crea VHD CoreOS

Nella schermata successiva, ti verrà richiesto un tipo di file del disco rigido. Seleziona VDI o Immagine disco VirtualBox.

CoreOS VDI

Successivamente, configura lo spazio di archiviazione. Raccomando di utilizzare un file del disco rigido assegnato in modo dinamico.

CoreOS Dynamic

Quindi scegli la posizione e la dimensione del file. Ho lasciato il CoreOS predefinito come nome e ho optato per una dimensione dei dati del file da 8 GB.

Allocazione delle dimensioni del file CoreOS

Con la macchina virtuale CoreOS VirtualBox configurata correttamente, andare avanti e fare clic sul pulsante Start verde.

Inizio di CoreOS

Dopo aver fatto clic su Start, dovrai selezionare un disco di avvio. Passare alla cartella in cui è presente la ISO CoreOS e continuare.

Configurazione di Container Linux

Dopo aver avviato il tuo ISO CoreOS, Container Linux inizia a caricare. Alla fine vedrai una linea che dà la tua versione CoreOS e una lettura da riga di comando:

 core@localhost 

Digitare:

 sudo openssl passwd -1>cloud-config-file 

CoreOS Passwd Config

La riga di comando presenta un avviso che se non è possibile aprire il file di configurazione. Inserisci la password desiderata e continua. Avanti inserire:

 cat cloud-config-file 

CoreOS Cat Cloud Config

Ciò restituisce una stringa lunga e crea un nuovo file di configurazione cloud. Ora apri il cloud-config in un editor visuale:

 vi cloud-config-file 

CoreOS VI

Questo carica un file di configurazione del cloud che puoi modificare. CoreOS include un file di esempio cloud-config avanzato:

Esempio di configurazione di CoreOS Cloud

Il mio sembrava:

 #cloud-config users: moe passwd: [SSL password] groups: - sudo - docker 

CoreOS Cloud Config Es

Puoi controllare il tuo file di configurazione del cloud inserendo:

 cat cloud-config-file 

CoreOS Controlla Cloud Config

Questo restituisce il tuo file di configurazione. Se tutto sembra a posto, procedere con l'installazione di CoreOS:

 sudo coreos-install -d /dev/sda -C stable -c cloud-config-file 

CoreOS Install Final

Verrà visualizzato un messaggio che indica che CoreOS viene scaricato, scritto e verificato. Non appena finisce, vedrai un messaggio che dice "Successo! CoreOS [versione] è installato su / dev / sda. "

Successo CoreOS

Spegnere la macchina virtuale CoreOS e riavviarla. Quando si avvia il backup, assicurarsi di smontare il CoreOS ISO, altrimenti il ​​CD live verrà eseguito di nuovo.

CoreOS verrà caricato e verrà richiesto un prompt di login nella riga di comando:

 localhost login: 

Login finale CoreOS

Inserisci il tuo nome utente e password. Questo caricherà un messaggio che dice "Container Linux by CoreOS [versione]" e una nuova riga di comando.

Login finale CoreOS

Hands-on con container Linux: prossimi passi

Ora che Container Linux di CoreOS è installato correttamente, puoi iniziare a configurare container e cluster. La documentazione CoreOS offre un'eccellente guida rapida. Sono disponibili informazioni sulla scoperta dei servizi utilizzando etcd e una sezione sulla gestione dei contenitori con Docker. Ho eseguito alcuni test rapidi come un tiro del Docker "Hello World". Inoltre, ho installato un'immagine Plex Docker perché sono un grande server multimediale. Infine, ho impostato la flotta per la gestione dei cluster.

Quello che vorresti fare prima è configurare i componenti principali di Container Linux:

  • etcd
  • docker
  • Flotta

Configurando queste tre basi primarie, sarai pronto per l'individuazione dei servizi, la gestione dei cluster e la configurazione dei contenitori. Quindi puoi iniziare a containerizzare le app e testare in modo sicuro le app desktop in un contenitore Docker sicuro Come testare in sicurezza le applicazioni desktop in un contenitore sicuro con Docker Come testare in sicurezza le applicazioni desktop in un contenitore sicuro Con Docker Docker è una piattaforma popolare per lo sviluppo e il test applicazioni basate su server. Ma lo sapevi che puoi anche usarlo per mettere in sicurezza e far girare nuovi programmi sul tuo desktop? Leggi di più .

Hands-On with Container Linux: Considerazioni finali

Non uso spesso i container, ma la distribuzione semplificata di Container Linux. La documentazione è eccellente con i file di configurazione di esempio. Nota che per i principianti, diverse esercitazioni di installazione video non ufficiali rendono più semplici le installazioni di CoreOS. Mentre CoreOS afferma che Container Linux è leggero, inizialmente ero scettico. Eppure ho trasformato Container Linux in una macchina virtuale con un consumo di risorse piuttosto basso. E poiché volevo testare se Container Linux fosse veramente leggero, ho usato il mio vecchio laptop HP e non ho riscontrato problemi.

Tuttavia, alcuni passaggi nell'installazione iniziale non sono molto "adatti ai principianti". L'installazione e la configurazione di Container Linux richiedono una solida familiarità con Linux. In particolare, non ho provato la dashboard CoreUpdate, che CoreOS offre come funzionalità premium a pagamento. Anche se non ho problemi nell'usare la riga di comando, un ambiente grafico per il monitoraggio sarebbe una bella aggiunta.

Gli amministratori di sistema e gli amministratori di database possono trarre il massimo vantaggio da Container Linux. Tuttavia, per i server domestici, è un mezzo semplice e leggero per creare un ambiente cluster. Inoltre, con Container Linux puoi creare un cluster da una singola macchina. Ma Container Linux è un'ottima introduzione al lavoro con i container. Se stai cercando di saperne di più su Docker e contenitori, Container Linux funziona davvero bene su una macchina virtuale e offre tutte le risorse necessarie per iniziare.

È un'eccellente soluzione pronta per i debuttanti di container, oltre agli esperti sviluppatori DevOps, amministratori di sistema e amministratori di database. In definitiva Container Linux di CoreOS è un mezzo semplice per creare un ambiente scalabile, efficiente, containerizzato.

Stai usando CoreOS? Hai intenzione di? Facci sapere come stai containerizzando su Linux nella sezione commenti qui sotto!

In this article