Ohjelmointi

RancherOS: Yksinkertaisempi Linux Docker-ystäville

Kuten erilaiset Linux-palvelin- ja työpöytäjakelut, myös konttikeskeiset Linux-jakelut sekoittavat ja yhdistävät erilaisia ​​projekteja ja komponentteja täydellisen kontti-infrastruktuurin rakentamiseksi. Nämä distrot yhdistävät yleensä minimaalisen käyttöjärjestelmän ytimen, orkestrointikehyksen ja konttipalveluiden ekosysteemin. RancherOS ei vain sovi muottiin, vaan vie pienimmän ytimen ja konttiparadigman äärimmäisyyksiin.

RancherOS on konttiinfrastruktuurialusta, joka ajaa Dockeria suoraan pienemmän jalanjäljen (20 Mt) Linux-ytimen päälle. Rancherin omaksuma minimalistinen käyttöjärjestelmä on ainutlaatuinen, koska jopa init-prosessi on Dockerized-palvelusäiliö. Samoin perinteiset järjestelmätason palvelut, kuten NTP ja DNS, on korvattu konttivastaavilla.

Vähäisillä käyttöjärjestelmillä on useita etuja tuotannossa. Tarpeettomien pakettien ja kirjastojen poistaminen nopeuttaa käynnistystä, helpottaa versionhallintaa ja pienentää hyökkäyspintaa, mikä tarkoittaa vähemmän suojauskorjauksia. RancherOS vie "päivitykset" askeleen pidemmälle ja jakaa kaikki järjestelmäpalvelut Docker-kontteina. Tietoturvapäivitys tarkoittaa yksinkertaisesti uuden kuvan lataamista ja säilön uudelleenkäynnistämistä, prosessi, joka kestää vain muutaman sekunnin ilman palvelun seisokkeja.

RancherOS on kontteihin suunniteltu käyttöjärjestelmä tuskin tunnistettavissa perinteisestä Unix-taustasta tuleville. Ytimestä säilyy vain pieni osajoukko - kaikki muu tehdään säiliöissä. Mutta jos olet perehtynyt Dockeriin, tunnet olosi kotoisaksi RancherOS: ssä.

Suunniteltu Dockerille

RancherOS-suunnittelun ymmärtämiseksi sinun on muistettava, että perinteiset Unix-järjestelmät määritetään harvoin ja sovellukset kerrostetaan vakaan peruskuvan päälle. Konttiinfrastruktuurissa käyttöjärjestelmä on tavallaan kertakäyttöinen ja todennäköisesti vaihdetaan usein. Vaikka voisit käyttää Ansible-, SaltStack-, Puppet- tai Chef -työkalua konttiasemien määrittämiseen ja ylläpitoon, mittakaavassa ajettaessa on helpompaa käyttää samaa käyttöliittymän käyttöliittymää kuin kontteihin ja käynnistää uusi ilmentymä Käyttöjärjestelmä.

Siten RancherOS poistaa kaikki paitsi Dockerin ja agenttien isännöinnin kannalta välttämättömät tavarat konttienhallinta-alustoille, kuten Rancher tai Kubernetes. Itse asiassa RancherOS on niin vähäinen, että vain kahta käyttäjää tuetaan: root ja rancher. Tämän rakenteen ymmärtämiseksi on parasta aloittaa havainnollistamalla järjestelmäarkkitehtuuria:

Karjatilallinen

RancherOS on säiliöitetty siihen pisteeseen, että jopa init-prosessi, PID 1, josta kaikki muut prosessit syntyvät, on Docker-demoni. Vaikka näennäisesti pieni yksityiskohta, perinteisen init-järjestelmän, kuten Sysvinit tai Systemd, korvaaminen Dockerized-init-prosessilla on yksi RancherOS: n ydinominaisuuksista, koska se voittaa joitakin Systemd- ja Docker-arkkitehtuurien yhteensopimattomuuksia puhtaalla tavalla. Vaikka Systemd-kehittäjät ovat edistyneet näiden yhteensopimattomuuksien ratkaisemisessa, RancherOS-suunnittelu takaa nollan ongelmat täällä, nyt ja tulevaisuudessa, tosin kustannuksella hallita asioita hieman eri tavalla.

RancherOS käyttää kahta Docker-demonia, System Docker ja User Docker. Kaikkia järjestelmätason palveluja, kuten konsolia, laitehallintaa, NTP: tä ja DHCP: tä, hallinnoi järjestelmän telakointiasema komento, kun taas konttien työmääriä hallitaan perinteisellä satamatyöläinen komento. Nämä komennot ovat identtiset, lukuun ottamatta konttityyppejä, joilla niitä voidaan käyttää. Joten, jos haluat nähdä, mitkä järjestelmätason palvelut ovat käynnissä, kirjoitat järjestelmän telakointiasema ps.

Jos teet niin, huomaat, että oikeassa reunassa olevat nimet - Syslog, NTP, Udev jne. - ovat kaikki Linux-järjestelmäpalveluja. Järjestelmäpalvelun pysäyttäminen, käynnistäminen ja päivittäminen hoidetaan samalla tavalla kuin minkä tahansa muun säilön kanssa Docker-sovellusliittymän avulla.

Huomaa myös, että System Dockerin käynnistämä järjestelmäpalvelusäiliö, jota kutsutaan dockeriksi, on erillinen Docker-daemon käyttäjäsäiliöiden hallintaa varten. Tämä on tärkeä erioikeuksien erottaminen. Koska kaikki käyttäjäsäilöt kulkevat User Docker -säiliön sisällä, esimerkiksi kaikkien käyttäjäsäilöjen poistaminen ei tuo alas RancherOS-palveluita käyttäviä järjestelmäkontteja.

Näet kirjoittamalla, mitkä käyttäjän konttien työmäärät ovat aivan kuten normaalisti Dockerin kanssa telakka ps. Jopa kuori on kontti (nimeltään konsoli), joten voit valita, minkä haluat suorittaa. Tällä hetkellä käytettävissä olevat kuoret ovat BusyBox (oletus), Alpine, CentOS, Debian, Fedora ja Ubuntu.

Koska järjestelmäpalvelut ovat kontteja, pakettien hallintaa ei ole. Päivitä palvelu yksinkertaisesti pysäyttämällä vanha säilö, vetämällä uusi versio ja käynnistämällä palvelu uudelleen, kaikki samalla Docker-sovellusliittymällä.

RancherOS: n asennus ja määritykset

Ensimmäinen asia, jonka perinteisen Unix-järjestelmänvalvojan on tehtävä, on lopettaa ajatteleminen "usean käyttäjän käyttöjärjestelmästä" ja "ajattelu" infrastruktuurialustasta ". RancherOS on suunniteltu toimitettavaksi useisiin ympäristöihin - mukaan lukien paljas metalli, virtuaalikone ja monet pilvet, mukaan lukien AWS ja Google - ennustettavalla, automatisoidulla tavalla.

Asensin virtuaalikoneeseen ISO-kuvaa käyttämällä, eikä perusasennuksessa ollut ongelmia. Ei vaihtoehtoja tai määritysnäyttöjä. Käynnistät käyttöjärjestelmän (joka kirjautuu automaattisesti sisään), asetat levyn osion tilalle RANCHER_STATE ja käynnistät sitten uudelleen ja määrität asetukset.

Jos katsot kokoonpanohakemistoa / etc, näet / etc / rc-tiedostoja tai paljon muuta, ja mitä on, sitä ei ole muokattu tekstieditorilla. RancherOS: lla on kolme perinteisessä mielessä suoritettua suoritustasoa, jotka vastaavat System Dockeria, User Dockeria ja Containeria. Määritykset suorittaa bootcmd, joka toimii ennen System Dockeria, ja runcmd, joka toimii System Dockerissa, suoritetaan ennen User Dockerin käynnistämistä.

RancherOS määritetään kahdella tavalla: manuaalisesti käyttämällä ros kokoonpano komento ja käynnistyshetkellä pilvi-kokoonpanotiedosto. Löysin tämän aluksi hieman hämmentäen, varsinkin jos et ole koskaan käyttänyt cloud-configia (vihje: käytä alkuasetuksiin YAML-tiedostavaa editoria, kuten Emacs ja Tramp Mode). Kun pystyin SSH: n koneeseen, sitä oli suhteellisen helppo käyttää ros kokoonpano saada haluamasi kokoonpano ja kirjoittaa vastaava pilvi-config YAML-tiedosto voimaan seuraavalla uudelleenkäynnistyksellä. Koska käynnistys on nopeaa, myös tässä tapahtuva kehitysjakso on nopea.

Kaikki mitä haluat määrittää, voidaan tehdä joko YAML-tiedostolla tai ros kokoonpano mukaan lukien ytimen moduulien lataaminen, TLS-kokoonpano ja ytimen viritysparametrit. Olisi mukavaa saada tapa säilyttää olemassa olevat investoinnit kokoonpanonhallintatyökaluihin, kuten SaltStack ja Puppet, ainakin osittain, helpottamaan siirtymistä konttiympäristöihin. SaltStackin reaktori näyttää olevan hyvä tähän käyttötapaukseen. Kuten nyt, suurin osa ihmisistä oppii aivan uuden tavan hallita konekokoonpanoja. Suurin osa säilön järjestelmänvalvojista käyttää Rancher-säilönhallinnan verkkokäyttöliittymää, joten tämä tehtävä on todennäköisesti helpompaa tällä tasolla.

RancherOS-tallennustila ja verkkoyhteydet

Mainitsin aiemmin, että asennat RancherOSin määrittämällä laitteen pysyvän tilan tallentamiseen. Useimmissa tilanteissa tämä on ainoa levy, jota RancherOS käyttää. Koska kaikki palvelut suoritetaan Docker-säilöissä, ne käyttävät Docker-määriä pysyvään tallennukseen, mikä peilaa suunnilleen järjestelmän arkkitehtuurin. Järjestelmän volyymit tarjoavat jatkuvan tallennuksen järjestelmäkontteille, käyttäjätietoja konsolipalveluille ja komentojen volyymit järjestelmäpalveluiden käyttämille binääreille. Volyymien ja palvelujen suuri määrä tarkoittaa, että kiinnitys -komennosta ei ole paljon apua: käsittelemättömiä tuloksia on koko sivu. Toivon, että dokumentaatio selitti tämän hieman paremmin, koska pysyvyys on kriittisen tärkeä aihe ymmärtää.

Rancher tukee live-tilannekuvia ja Docker-taltioiden varmuuskopiointia, jonka avulla käyttäjät voivat varmuuskopioida tilatut säilöt ja tilalliset palvelut. Tämä ei sisälly RancherOS-järjestelmään, mutta on osa Rancher-konttihallintajärjestelmän Convoy-ominaisuutta. Konvoya käyttämällä voit ottaa tilannevedoksia volyymeistä, varmuuskopioida tilannekuvia vähitellen objektikauppoihin, kuten Amazon S3, ja palauttaa volyymit käynnissä oleviin isäntiin.

ZFS-tiedostojärjestelmää tuetaan, mutta minulla ei ollut mahdollisuutta kokeilla sitä. Ottaen huomioon dokumentaation tilan ja rajoituksen, jonka mukaan zpool voidaan asentaa vain / mnt: lle, suosittelen perusteellista testausta ennen tämän käyttöä tuotannossa.

Voit tehdä kaikki tavanomaiset verkkoasetukset RancherOS: ssä, mutta käyttämällä YAML-määritystiedostoja tai ros komentoja. Verkkoasetukset elävät rancher.network.interfaces-nimiavaruudessa, jossa voit määrittää esimerkiksi DHCP: n, yhdyskäytävät, MTU: n jne. Tms. Useita verkkokortteja, liitoksia, siltoja ja VLANS: iä voidaan määrittää samalla tavalla. DNS on rancher.networks.dns-avaimetilassa. Ennen kuin olet tottunut nimiavaruuden kartoituksiin, odota vähän kaivamista.

RancherOS-päivitykset

Paikalliset päivitykset tuskin voivat olla helpompia. Sinun on päivitettävä (tai päivitettävä) kaksi järjestelmää: käyttöjärjestelmä ja Docker-moottori. Kummankin hallinta on helppoa ja kestää vain sekunteja, arvasit sen ros komento. Sinun tarvitsee vain valita käyttöjärjestelmän versio, jonka haluat suorittaa ja käynnistää uudelleen. Toivon, että kaikki Unix-päivitykset menivät niin sujuvasti. Esimerkiksi alentaminen versiosta 1.0.1 arvoon 1.0.0 kesti alle minuutin:

Karjatilallinen

Kiva. Jos haluat vaihtaa Docker-moottoreita, voit tehdä sen yhtä helposti:

ros moottorikytkimen telakointiasema - 1.11.2

RancherOS on mukava pieni käyttöjärjestelmä. Sen lähestymistavat järjestelmän kokoonpanoon ja pakettien hallintaan ovat uudet ja erilaiset kuin perinteisillä järjestelmänvalvojilla, eikä dokumentaatio ole aina sellainen kuin se voisi olla. Mutta jos tunnet Dockerin, tiedät suurimman osan RancherOS: n ajamisesta.

Uusi konttien rotu on saavuttamassa kypsyyttä, ja konttien tuotannon käyttöönotto on todellinen mahdollisuus varhaisessa vaiheessa omaksuneille. RancherOS helpottaa konttien isännöinti-infrastruktuurin rakentamista, mutta tarvitaan uusia taitoja.

$config[zx-auto] not found$config[zx-overlay] not found