LXD

LXD Tutorial

LXD Tutorial

Grundlæggende om LXD: Hvad er det?? Og hvordan man bruger det?

LXD-containerisering har ikke fået rampelyset, som Docker gjorde, men det er faktisk meget tættere på kerneideen om operativsystemvirtualisering. Men inden vi kommer derhen, lad os tale om den moderne hardware-niveau virtualisering.

Hardware virtualisering

Den traditionelle måde, hvorpå VMware, VirtualBox, KVM og lignende teknologier fungerer, er denne - Du har en computer af serverkvalitet, siger en avanceret Xeon-processor med 512 GB RAM, kendt som det bare metal. Du installerer et operativsystem på dette, som derefter kører enten VMware, Virtualbox eller KVM.

Disse er forskellige hypervisorer, og det operativsystem, der kører dem, er værtsoperativsystem.

Nu, hvad hypervisor tilbyder er dette - Det emulerer CPU, netværksgrænseflader, lagringsdiske, hukommelse, I / O og andre ressourcer, så et nyt operativsystem kan installeres oven på dette sæt af virtuel hardware. Dette nye operativsystem er gæst operativsystem og det kører på virtuel hardware, som det ville, hvis det blev installeret på en fysisk maskine, men der er en fangst.

Hvis du tænker, ”Men at emulere forskellige hardwareenheder ved hjælp af den aktuelle hardware lyder ineffektivt og langsomt.”Du har helt korrekt. Virtualisering på hardwareniveau er langsom og ineffektiv.

Desuden er operativsystemerne selv kontrolfreaks. Hvis du tildeler et gæst OS 1 GB RAM og 2 CPU-kerner, vil det med glæde tage alle ressourcerne, selvom applikationerne, der kører inde i det, kun bruger en brøkdel af det. Disse ressourcer er ikke tilgængelige for hypervisoren at bruge andre steder.

Dette begrænser alvorligt antallet af virtuelle computere, der kan køre oven på en hypervisor. Hvis du er en cloud-hostingudbyder, betyder det, at din bundlinje bliver hårdt ramt.


Containerens måde at gøre tingene på

Ideen om virtualiseret hardware smides ud af vinduet, når vi begynder at tale om containere og specifikt LXD. I stedet for at efterligne individuelle hardwareressourcer er det, vi prøver at gøre, at virtualisere operativsystemet.

Når en LX-container spindes op, tilbyder OS sig (det vil sige kernen, bibliotekerne alle de ressourcer, der er tilgængelige) til applikationerne, der kører inde i containeren. Brugere og apps inde i denne container vil ikke være opmærksomme på applikationer og pakker, der kører uden for den, og omvendt.

For så vidt angår ressourceallokering kan du ganske enkelt lave en note for ikke at tillade en bestemt container at bruge mere end f.eks. 2 GB RAM og 2 CPU'er. På denne måde, når apps, der kører inde i en container, ikke gør noget intensivt, kan ressourcerne tildeles andre steder i værtsmiljøet.

Men når apps kører under tung belastning, får de bare metal-ydeevne!

Den åbenlyse mangel på dette er, at du ikke kan køre noget vilkårligt operativsystem som gæst. Fordi forskellige operativsystemer har forskellige arkitekturer helt. Heldigvis for GNU / Linux-brugere tilbyder Linux-kernen en så tæt ABI-kompatibilitet, at du kan efterligne forskellige distributioner oven på den samme kerne. Så du kan køre CentOS-binære filer og Ubuntu-applikationer på det samme metal bare i forskellige containere.


LXD init

LX containerisering er en velafprøvet og robust teknologi til Linux-baserede operativsystemer. Det har to hovedkomponenter, den ene er LXC, hvilket er det, der administrerer containerkonfigurationer, billedfiler osv., Og så er der LXD, som er dæmonen, der kører på din vært, og sikrer, at alle de politikker, der er indstillet til containerisering, følges.

Det installeres som standard på Ubuntu Server 16.04 LTS, hvis du bruger desktop distro, skal du køre:

$ apt installer lxd lxd-klient

Når det er gjort, skal du initialisere forskellige parametre. Følgende kommando vil køre dig igennem dem:

$ lxd init

Du kan vælge standardindstillinger herfra.  Den mest involverede ting ville være at oprette netværksgrænseflader. Når du bliver bedt om LXD-netværksopsætning, skal du vælge standardindstillingen ja.

1 Svar ja, igen, når du bliver bedt om at indstille netværk

Næste vindue beder om netværksgrænsefladenavn (som det ses på værten), lad det være standardværdien lxdbr0.

IPv4-undernetindstillingen ville komme efter dette. Det giver forskellige LX-containere mulighed for at tale med hinanden, som om de er forskellige computere på et lokalt netværk. Vælg ja til dette.

Dernæst vil der være flere 10.202.x.X-adresser vist hver med en anden rolle på dette undernet. Du kan trykke på enter uden behov for at finjustere indstillingerne. Når du bliver bedt om NAT-konfiguration, skal du vælge Ja.

Dette gør det muligt for dine containere at få forbindelse til internettet ved hjælp af værtens offentlige IP, på samme måde som din bærbare computer og andre enheder gør via hjemmerouteren (med portvideresendelse).

Den sidste mulighed for IPv6-subnet er helt valgfri, og jeg vil anbefale dig at udelade det for nu. Sige ingen, når du bliver bedt om IPv6-indstillinger.


Spinding af containerne

At køre en ny forekomst af f.eks. Ubuntu 16.04, kør følgende kommando:

$ lxc lancering ubuntu: 16.04 navn_af_din_container

Da dette er første gang, du kører en Ubuntu-server, vil det tage tid at hente containerbilledet fra de eksterne lagre. Når det er gjort, kan du se detaljerne om den lancerede container ved at køre kommandoen:

$ lxc-liste

I dette eksempel er navnet på containeren forts.

Hvis du vil komme ind i containeren, skal du køre kommandoen;

$ lxc exec name_of_your_container bash

Dette vil slippe dig ind i bash shell, der kører inde i den container. Det ville lugte og føles som en ny installation af Ubuntu 16.04, og du kan frit installere pakker inde i den og udføre forskellige eksperimenter, som du ikke risikerer din hovedinstallation.

Nu hvor du har billedfilen lokalt gemt på dit værtssystem, kan du spinde Ubuntu-containere meget hurtigt og bruge dem som engangssystemer.

For at stoppe og slette en LX-container skal du køre;

$ lxc stop Container_name $ lxc slet container_name 

Brug lxc startkommando, som du gjorde første gang til at spinde nye containere op.


Hvor skal man hen herfra

Nu hvor du ved, hvad arkitekturen i LXD er, vil du måske begynde at udforske emner som netværk og opbevaring af containere, og hvordan du konfigurerer dem til at passe til din arbejdsbyrde.

Det kan også være en god idé at lære om de vigtigste forskelle mellem Docker og LXD, og ​​hvad der rent faktisk kan passe bedre til dine behov. Hvis du vil bruge ZFS som din lagerbackend (som du burde!) vil du måske tjekke denne vejledning om grundlæggende ZFS.

Sådan installeres og afspilles Doom på Linux
Introduktion til undergang Doom-serien opstod i 90'erne efter frigivelsen af ​​den originale Doom. Det var et øjeblikkeligt hit, og fra den tid af har...
Vulkan til Linux-brugere
Med hver nye generation af grafikkort ser vi spiludviklere skubbe grænserne for grafisk troskab og komme et skridt tættere på fotorealisme. Men på tro...
OpenTTD vs Simutrans
Oprettelse af din egen transportsimulering kan være sjovt, afslappende og ekstremt lokkende. Derfor skal du sørge for at prøve så mange spil som mulig...