GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Guida introduttiva ai contenitori LXD su Ubuntu 16.04

Perché LXD?

Non è un segreto che i container siano caldi in questo momento nel mondo Linux. Stanno rapidamente diventando la spina dorsale del cloud e stanno realizzando i sogni di DevOps. Anche così, a prima vista, sembra un po' ridondante per Canonical sviluppare un nuovo sistema di container per Ubuntu in un mondo facilmente dominato da Docker. Allora perché, allora, l'hanno fatto? Per riempire una via di mezzo tra le macchine virtuali tradizionali e Docker. Canonical stesso ha affermato:"Combinando la velocità e la densità dei container con la sicurezza delle macchine virtuali tradizionali, LXD di Canonical è la prossima generazione di hypervisor di container per Linux". Non solo, i container Docker possono essere eseguiti all'interno dei container LXD, aggiungendo un'altra dimensione alle potenziali configurazioni dei container.

LXD è un miglioramento dell'hypervisor del container LXC Linux esistente con il proprio set di strumenti, condividendo una relazione simile al progetto originale come fa Ubuntu con Debian con l'obiettivo di prendere l'ottimo software esistente e ottimizzarlo per un uso più semplice. Nell'ultima versione di Ubuntu LTS di Canonical, la 16.04, LXD è ben integrato e facile da usare con strumenti CLI chiari e concisi che semplificano la creazione e la gestione dei container.

Configurazione iniziale

Iniziare con LXD su Ubuntu 16.04 è il più semplice possibile come ci si potrebbe aspettare. Canonical ha condensato l'installazione in un unico pacchetto, rendendola un'installazione con un comando. Un semplice sudo apt-get install lxd otterrà tutto il necessario per iniziare.



Per aggiungere l'utente al gruppo 'lxd' in modo da poter eseguire i comandi necessari senza un riavvio, eseguire newgrp lxd . Dopodiché, sarà tutto chiaro per procedere con il setup dell'hypervisor LXD. Esecuzione di sudo lxd init inizia il processo di configurazione.


Il processo di configurazione iniziale consiste in una serie di prompt della riga di comando che richiedono le informazioni di base necessarie per configurare l'hypervisor LXD. Il processo è tutto molto semplice e richiede informazioni come tipo di archiviazione, indirizzo IP, numero di porta, password e se la connessione è collegata o meno.



Dopo quella serie di richieste, la configurazione passa a un'interfaccia basata su testo con una serie di domande sulla configurazione di rete dell'hypervisor LXD. Il processo crea reti IPv4 e IPv6 con bridge complete di sottoreti personalizzate e DHCP. In questo modo, LXD funge da router virtuale per tutti i container distribuiti su di esso e fornisce un unico punto di configurazione per queste reti virtuali.

Chiaramente, questa è una di quelle volte in cui LXD brilla come una soluzione "il meglio di entrambi i mondi". Naturalmente, è anche bello che Canonical fornisca un menu di configurazione in stile Debian per seguire il processo e renderlo quasi insensatamente facile. Al termine della configurazione, viene eseguito il dump sulla riga di comando e viene fornito un breve messaggio in cui si informa che è stato eseguito correttamente.


Immagini e contenitori LXD

Impostazione di un container

Come Docker, LXD è basato su immagini. Fornisce tre opzioni principali per ottenere immagini; importazioni remote, integrate e locali. Ci sono diverse sorgenti remote che vengono fornite con LXD fuori dalla scatola così come le sorgenti locali. Per vedere quali sorgenti sono disponibili, esegui semplicemente lxc remote list e ti verrà presentata una comoda tabella della riga di comando che mostra informazioni sulle fonti attualmente disponibili.



Ai fini di questo articolo, le fonti locali sembravano essere l'opzione migliore e più semplice. Sono disponibili immagini Ubuntu pulite che rappresentano un ottimo punto di partenza per qualsiasi distribuzione. Questo è un altro di quei momenti del "meglio di entrambi i mondi". Invece di avere un container ridotto su misura per l'esecuzione di una singola applicazione, i container LXD sono più vicini a una macchina virtuale a tutti gli effetti.

Sono completi di accesso alla riga di comando e persino della possibilità di installare pacchetti. Allo stesso tempo, LXD fornisce eccellenti strumenti da riga di comando per gestire i container e persino eseguire il push e il pull di file da e verso di essi. Per avviare un container Ubuntu 16.04, esegui semplicemente lxc launch ubuntu:16.04 name-of-container . LXD preleverà l'immagine, creerà un contenitore e avvierà il contenitore.


Lavorare con i container LXD

È facile controllare lo stato del container con lxc list . Avviare e fermare i container è altrettanto facile con lxc stop name-of-container e lxc start name-of-container .



Uno dei chiari vantaggi di LXD rispetto ai container tradizionali come Docker è la possibilità di modificare i container in esecuzione e aggiornarli invece di imballare un container, distribuirlo e lasciarlo in pace. Se si tratta di passare file tra il sistema host e i container, LXD dispone di comandi push e pull che consentono di passare i file avanti e indietro. Se è necessario qualcosa di più coinvolto, LXD fornisce un ottimo strumento da riga di comando per accedere ai contenitori in esecuzione e ottenere una shell completa. Per ottenere l'accesso alla shell di un container eseguito, lxc exec name-of-container -- /bin/bash .



Nella shell del contenitore è presente un filesystem Linux completo e la riga di comando ha accesso a qualsiasi strumento sia stato fornito in bundle con l'immagine o installato successivamente sui contenitori. Ciò consente ai contenitori LXD di eseguire aggiornamenti e più applicazioni, incluso Docker. In questo modo, un ingegnere DevOps potrebbe distribuire un container LXD che esegue un database e un server Web, nonché Docker con diverse applicazioni Web in esecuzione in container Docker.
Ovviamente, questa è solo una delle tante possibilità, ma qui l'aspetto chiave è che LXD aggiunge un altro livello all'equazione e offre maggiore flessibilità durante la configurazione di uno stack software.

Conclusione

È chiaro anche da questa prova più elementare con LXD che Canonical ha raggiunto il suo obiettivo nel creare una chiara via di mezzo tra la virtualizzazione Linux completa e i contenitori Docker. LXD è uno strumento che gli ingegneri DevOps dovrebbero considerare seriamente di aggiungere alla loro cassetta degli attrezzi.


Ubuntu
  1. Iniziare con Zsh

  2. Iniziare con ls

  3. Iniziare con PostgreSQL su Linux

  4. Guida introduttiva a Multipass – Esecuzione di macchine virtuali Ubuntu

  5. Come iniziare con Juju?

Guida introduttiva al filesystem ZFS su Ubuntu 19.10

Iniziare con cPanel

Introduzione all'esercitazione Docker di Azure

Procedura:Introduzione a Ubuntu 14.04 LTS con LAMP

Procedura:Introduzione a Ubuntu 14.04 LTS con LEMP

Procedura:Introduzione a Windows Containers e Docker