-
Kontit ja niiden orkestrointi
Kontit ja niiden orkestrointi
Kontit
Kontit ovat käyttöjärjestelmän ytimen ominaisuuksiin perustuva teknologia, joka mahdollistaa eristettyjen ympäristöjen luomisen yhteistä ydintä käyttäen. Esimerkiksi konttiominaisuuksien avulla voidaan käyttää useita eristettyjä juuri- tiedostojärjestelmiä, verkkopinoja ja prosessipuita, jotka kaikki käyttävät samaa ydintä. Nämä eristetyt ympäristöt muistuttavat toiminnallisuudeltaan kevyitä virtuaali- koneita, mutta virtuaalikoneiden ja konttien välillä on joitakin keskeisiä eroja. Suurin niistä on se, että virtuaalikoneilla on aina omat ytimensä, kun taas kontit jakavat isäntäjärjestelmän ytimen.
Virtuaalikoneiden ja konttien välinen ero.
Vaikka monissa käyttöjärjestelmissä on konttitoiminnallisuus, tässä dokumentaatiossa tarkastelemme tarkemmin Linux-käyttöjärjestelmän kontteja. Linux on suosituin käyttöjärjestelmä konttien ajamiseen, ja se on myös Rahti-konttipilvessä käytettävä käyttöjärjestelmä.
Konttitoiminnallisuuden käyttämiseen tarvitaan runtime. Tällä hetkellä Linuxin suosituin runtime on Docker, mutta podman, cri-o ja monet muut ovat kasvattamassa merkitystään. Kaikki nämä runtime-ympäristöt noudattavat Open Container Initiative (OCI) -hankkeen ohjeistuksia. Runtime tarjoaa joukon työkaluja, jotka helpottavat konttien käyttöä verrattuna ytimen toiminnallisuuden suoraan käyttämiseen. Näitä ovat pääasiassa komentorivikäyttöliittymä ja taustakirjastot konttien ja levykuvien ajamiseen, rakentamiseen ja hallintaan.
Docker on tehnyt konteista suosittuja helpottamalla niiden käyttöä. Sen sijaan, että käyttäjän pitäisi tutkia ytimen dokumentaatiota ja selvittää, miten ytimen konttiominaisuuksien eri rajapintoja käytetään, ja sen jälkeen vielä päättää, mitä ominaisuuksia haluaa käyttää ja miten, Docker tarjoaa yksinkertaisemman tavan käynnistää kontteja yhdellä komentorivikomennolla. Docker eristää käyttäjän näkyvistä sen, mitä ytimen ominaisuuksia käytetään ja miten niitä käytetään.
Esimerkkinä Dockerin käytöstä alla on tapa käynnistää kontti omalla tietokoneellasi Dockerin asentamisen jälkeen:
Tämä lataa ubuntu-levykuvan, jos sitä ei ole vielä tietokoneella, käynnistää siihen perustuvan kontin ja antaa käyttäjälle komentorivikäyttöliittymän kontin sisällä. Käyttäjän näkökulmasta kokemus on samankaltainen kuin virtuaalikoneen käynnistäminen: riippumatta siitä, mikä käyttöjärjestelmä- jakelu tietokoneellasi on, kontin käyttäminen näyttää siltä kuin olisit vuorovaikutuksessa Ubuntu-asennuksen kanssa.
Komennon suorittamisen jälkeen sinun pitäisi pystyä näkemään ladattu Ubuntu Docker -levykuva listaamalla levykuvat:
Voit tehdä myös monia muita asioita, kuten käynnistää kontteja taustalla, liittyä käynnissä olevaan konttiin vuorovaikutusta varten tai rakentaa omia Docker- levykuvia Dockerfilesta. Tässä annetut esimerkit on tarkoitettu antamaan yleinen käsitys siitä, miltä konttien käyttö näyttää käyttäjän näkökulmasta. Dockerin kattavampi dokumentaatio löytyy virallisesta Docker-dokumentaatiosta.
Konttien orkestrointi
Jotta ymmärtäisimme, miksi konttien orkestrointialustat ovat tärkeitä, kuvaillaan, miten tyypillinen selainpohjainen sovellus, jota loppukäyttäjät käyttävät verkkoselaimen kautta, rakennetaan.
Sovellus koostuu käyttöliittymästä, joka on käyttäjille näkyvä osa sovellusta, sekä taustajärjestelmästä, joka hoitaa erilaisia taustatehtäviä, kuten käyttäjädataan tallentamisen tietokantaan. Sovellus suorittaa palvelinprosessia, johon asiakkaat ottavat yhteyttä ollakseen vuorovaikutuksessa sovelluksen kanssa. Se käyttää myös taustalla tietokantaa, kuten PostgreSQL:ää tai MongoDB:tä, käyttäjädatan tallentamiseen.
Tämän sovelluksen suunnittelijoiden on suunniteltava se niin, että sovellus toimii luotettavasti, nopeasti ja turvallisesti:
- Palvelinlaitteisto voi vikaantua, joten sovellus on replikoitava useille fyysisille palvelimille, jotta yksittäisen palvelimen vika ei tee koko sovelluksesta saavuttamatonta.
- Suuri määrä käyttäjiä kuormittaa sovellusta. Sovelluksen skaalaamisen on oltava mahdollista lisäämällä sovellusprosesseja, jotta voidaan varautua kasvavaan käyttäjäkuormaan.
- Yhteyden sovellukseen on oltava turvallinen, jotta käyttäjät voivat turvallisesti syöttää datansa sovellukseen ilman pelkoa salakuuntelijoista.
- Käyttäjädata on tallennettava luotettavasti vikasietoiseen tallennusjärjestelmään.
Voisit luoda Linux-virtuaalikoneita, asentaa niihin Dockerin ja ajaa sovellusta suoraan niiden avulla, mutta kaikkien yllä olevien vaatimusten täyttäminen vaatisi paljon lisätyötä. Sinun pitäisi selvittää, miten hallitaan useita sovelluksen instansseja useilla palvelimilla, miten saapuva liikenne ohjataan tasaisesti kaikille sovellusinstansseille, miten käyttäjädata tallennetaan ja miten kapasiteettia lisätään nopeasti tarpeen mukaan.
Onneksi useimmilla sovelluksilla on samankaltaiset vaatimukset, joten hyvän sovelluksen rakentamisen vaiheet ovat usein melko samanlaisia. Tässä kohtaa konttien orkestrointi- järjestelmät tulevat kuvaan. Ne hoitavat monia yleisiä tehtäviä, joita tarvitaan vankkojen verkkosovellusten ajamiseen, kuten sovellusinstanssien jakamisen useille palvelimille, liikenteen ohjaamisen sovellusinstansseille sekä pysyvän tallennuksen tarjoamisen tietokannoille.
Tällä hetkellä suosituin ohjelmisto konttien orkestrointiin on Kubernetes. Se perustuu Googlen yli vuosikymmen sitten kehittämiin aiempiin järjestelmiin. Rahti- järjestelmä perustuu Red Hatin tekemään Kubernetes-jakeluun nimeltä OpenShift.