Recensione: il sistema operativo Photon di VMware brilla per i container Docker

Con il progetto open source Photon, VMware spera di costruire una comunità attorno alla pratica di eseguire applicazioni containerizzate in ambienti virtuali. Photon è un termine generico per più progetti che includono modi per distribuire container su una VM, utilizzando Photon OS, nonché modi per distribuire container come VM sull'infrastruttura VMware.

Photon OS è un container host Linux di dimensioni ridotte progettato per essere eseguito su macchine virtuali e ottimizzato per hypervisor VMware. VMware ha sicuramente abbracciato il movimento Docker in grande stile, e non solo su VMware. Puoi eseguire Photon OS su altri hypervisor tra cui Google Compute Engine e Amazon EC2. Tuttavia, non è possibile installare Photon OS su un server fisico.

Photon OS non fa supposizioni sul set di strumenti del contenitore, sebbene Docker sia installato per impostazione predefinita. Gli amministratori possono stratificare gli strumenti di gestione dei contenitori di loro scelta sul sistema operativo di base utilizzando il gestore di pacchetti Photon.

Amministrazione del sistema operativo Photon

Su Photon OS, la gestione dei pacchetti viene eseguita con TDNF (Tiny Dandified Yum), una creazione VMware open source che offre la gestione dei pacchetti compatibile con DNF senza l'ampio footprint Python di Yum.

VMware fornisce i propri repository compatibili con Yum per la gestione dei pacchetti e firma i pacchetti con firme GPG (GNU Privacy Guard). Questo aiuta a rendere il sistema sicuro per impostazione predefinita. La verifica della firma avviene automaticamente, quindi non ci sono passaggi aggiuntivi richiesti dagli amministratori di sistema o dagli script. I repository Photon OS sono "curati", quindi non aspettarti di trovare tutti i pacchetti disponibili per il download.

Poiché Photon OS 1.0 Revision 2 è fornito con una versione precedente di Docker, la prima cosa che volevo fare era provare un aggiornamento. Ciò è andato alla perfezione e nel giro di un minuto tutti i miei container erano in esecuzione sull'ultima versione di Docker.

Photon OS utilizza il sistema di inizializzazione Systemd, quindi gli amministratori dovranno imparare quel tipo di gestione del sistema se non l'hanno già fatto. La sicurezza è al centro dell'attenzione e il sistema include SE Linux per migliorare l'isolamento dei container. Un firewall (iptables) è attivato per impostazione predefinita e i pacchetti dalle interfacce esterne (eccetto il traffico SSH) vengono ignorati, quindi gli amministratori dovranno aggiungere regole per consentire il traffico dal mondo esterno.

Per lo più questa sicurezza predefinita non si è intromessa, tranne quando si effettua una modifica obbligatoria alla password di root dall'installazione pulita. Qualsiasi errore spinge l'utente fuori dalla shell e torna a un prompt di accesso. Questa parte avrebbe potuto essere un po 'più facile da usare.

Installazione e configurazione di Photon OS

Ho installato Photon OS utilizzando la macchina virtuale scaricabile. Come ci si potrebbe aspettare, questo è stato indolore durante la configurazione di VMware Workstation Pro. Il sistema ha rilevato il download, ha chiesto se volevo accettare i parametri hardware e si è avviato immediatamente. Photon OS è disponibile anche come ISO e come immagini per i cloud Amazon e Google. Dopo aver effettuato l'accesso come root e configurato gli accessi senza password, ero spento e in esecuzione.

L'installazione minima, come altri host Linux del contenitore, non contiene quasi nulla, nemmeno sudo, sebbene includa SSH. Gli amministratori che distribuiscono flotte di VM del sistema operativo Photon vorranno eseguire lo script della configurazione e per quel sistema operativo Photon utilizza Cloud-Init, un set di script e utilità Python per semplificare la distribuzione e la configurazione del cloud.

Anche per un sistema operativo per container Docker, configurare Photon OS è stato facile come sembra. Sembra che l'esecuzione di Nginx in un container sia il "Hello world" per Docker. Eccolo su Photon OS:

# systemctl start docker

# systemctl enable docker

# docker run –d –p 80:80 vmwarecna/nginx

Archiviazione e rete di Photon OS

Grazie all'esecuzione in un ambiente hardware virtualizzato, i dispositivi di archiviazione appaiono come un normale hardware e le operazioni standard del file system sono disponibili in Photon OS. È possibile aggiungere un nuovo disco (virtuale) alla macchina e montarlo dove è necessario, proprio come qualsiasi altro disco. Il file system Photon OS include Btrfs ed Ext4. Il file system radice predefinito è Ext4. Gli esempi di Btrfs sono pochi e Ext4 sembra predominare.

L'archiviazione remota è gestita dalle utilità Photon NFS. Nessuno degli altri Linux orientati ai contenitori che ho usato (Alpine, RancherOS, CoreOS e Atomic Host) includeva istruzioni per NFS, quindi sono stato felice di vedere che VMware ha documentato la pratica. NFS è ancora vivo e vegeto negli ambienti aziendali e mi aspetto che il montaggio di unità NFS sarà un caso d'uso comune per gli utenti di Photon OS.

L'unica opzione di archiviazione insolita in Photon OS è la scelta di file system di sola lettura o di lettura-scrittura, ma questo dipende davvero dal caso d'uso e sono stato felice di avere la scelta.

Il networking in Photon OS utilizza le utility iproute2, sebbene siano inclusi i comandi tradizionali ipconfige netstat. Le installazioni del sistema operativo Photon non includono alcuna configurazione di rete del contenitore per impostazione predefinita, ma sono documentate molte configurazioni popolari: Docker, Rocket, DCOS, ecc. Dal punto di vista della rete, Photon OS è proprio come qualsiasi altra versione di Linux e non ci sono state sorprese.

Aggiornamenti e downgrade del sistema operativo Photon

Come Atomic Host di Red Hat, Photon OS utilizza rpm-ostree come sistema ibrido di gestione di immagini / pacchetti, con il proprio server OSTree. La comprensione dei set di comandi rpm-ostree, della terminologia e delle migliori pratiche richiederà tempo agli amministratori. Oltre ad apprendere una nuova serie di comandi da apprendere, gli amministratori dovranno essere a conoscenza delle directory di sola lettura e assicurarsi che le applicazioni non vi scrivano file. Ad esempio, la directory / usr è di sola lettura quando si utilizza rpm-ostree. Il profilo rpm-ostree è un'opzione in fase di installazione, quindi gli utenti possono scegliere tra TDNF o rpm-ostree per la gestione dei pacchetti. La documentazione è buona su questo argomento.

Durante lo sviluppo del sistema operativo Photon, VMware è stato in grado di rimuovere tutti i tipi di moduli legacy dal kernel Linux. Poiché VMware controlla l'intero hardware e lo stack del sistema operativo, è stato anche in grado di ottimizzare i buffer, la contabilità del tempo e compilare i flag per eliminare le ridondanze tra il runtime del contenitore e l'hypervisor. Per le organizzazioni con un investimento nella virtualizzazione VMware, il progetto Photon dovrebbe essere in cima alla lista per indagare.