Skip to content

Kubernetes-teknologia

Kuvauksen kirjoitti: Lassi Lehtinen, M3069

Lyhyt kuvaus

Kubernetes (K8s) on avoimen lähdekoodin konttiorkestrointijärjestelmä. Sen avulla voi automatisoida kontitettujen sovellusten käyttöönoton (ks. Käyttöönotto (Service deployment)), skaalauksen ja hallinnoinnin. Kubernetes on alkujaan Googlen kehittämä, ja sen design pohjautuu Googlen omaan Borg-klusterinhallintajärjestelmään ja sen kehityksestä saatuihin oppeihin. Kun Kubernetesin versio 1.0 julkaistiin vuonna 2015, Google lyöttäytyi yhteen Linux Foundationin kanssa muodostaakseen Cloud Native Computing Foundationin (CNCF). Kubernetes oli ensimmäinen CNCF:n hallinnoima teknologia.

Kubernetesin hallinnoimaa kokonaisuutta kutsutaan klusteriksi. Klusteri koostuu joukosta työläiskoneita, joita kutsutaan nodeiksi. Nodet ajavat kontitettuja (ks. Docker-teknologia (Docker technology)) sovelluksia. Jokaisessa Kubernetes-klusterissa on vähintään yksi node.

Kontti on virtuaalikoneen tapainen ympäristö, jossa voi ajaa ohjelmia. Kontin ja varsinaisen virtuaalikoneen suurin ero on se, että kontti ei sisällä käyttöjärjestelmäydintä, vaan kaikki saman noden kontit käyttävät samaa käyttöjärjestelmäydintä oman virtuaaliympäristönsä ajamiseen.

Nodejen sisällä Kubernetes sijoittaa kontit podeihin. Pod on Kubernetesin oma komponentti, joka voi sisältää yhden tai useamman kontin. Saman podin sisällä ajettavat kontit jakavat resursseja ja voivat keskustella keskenään. Podien avulla voidaan varmistaa, että kiinteästi toisiinsa kytkeytyvät kontit pysyvät yhdessä. Tavallisinta on kuitenkin, että yksi pod sisältää yhden kontin.

Kubernetesin käyttökohteet

Sana kubernetes tarkoittaa kreikaksi ruorimiestä. Se kuvaa hyvin Kubernetesin tarkoitusta. Kubernetesia käytetään kontitetun sovelluksen tai järjestelmän orkestrointiin (ks. Orkestrointi (Service orchestration)). Orkestroinnilla tarkoitetaan kaikenlaista konttien hallinnointia.

Kun kontitettu sovellus käynnistetään, Kubernetes pitää huolen siitä, että kaikki sovelluksen vaatimat kontit käynnistetään. Sovellusta käynnistettäessä Kubernetes päättää konttien vaatimien resurssien mukaan, miten kontit sijoitellaan eri palvelimille. Näin kontit saadaan sijoiteltua tehokkaasti niiden vaatiman prosessointitehon, muistin määrän ja tallennustilan tarpeen mukaan. Kun sovellus on käynnistetty, Kubernetes pitää yllä tietoa siitä, millä palvelimella suoritetaan mitäkin kontteja. Kubernetes hoitaa myös IP-osoitteiden jakamisen konteille, sekä sovelluksen julkaisemisen.

Sovelluksen ajon aikana Kubernetes huolehtii tarvittaessa sen skaalaamisesta kuormituksen mukaan. Kubernetes käynnistää uusia ja sulkee ylimääräisiä kontteja sovelluksen käyttöasteen ja sen vaatimien resurssien määrän mukaan. Lisäksi Kubernetes hoitaa kuormanjaon sovelluksen konttien välillä.

Myös sovelluksen vianseuranta voidaan hoitaa Kubernetesilla. Se tarkkailee konttien tilaa ajon aikana ja käynnistää tarvittaessa vikaantuneita kontteja uudestaan.

Kubernetes auttaa myös useisiin kontteihin pilkottujen sovellusten päivittämisessä. Päivityksen epäonnistumisen varalta Kubernetes pitää myös varmuuskopioita konteista, jotta tarvittaessa kontit voidaan palauttaa päivitysyritystä edeltäneeseen tilaan. Tämän palautuksenkin voi hoitaa Kubernetesilla. Kubernetes mahdollistaa sovelluksen päivittämisen ilman käyttökatkoksia.

Kubernetesin käytön höydyt

Kubernetesin käytöllä on kaiken sen tarjoaman automaation lisäksi muitakin hyötyjä. Se esimerkiksi optimoi resurssien käytön tehokkaammin kuin mihin ihminen pystyisi. Lisäksi Kubernetes tarjoaa näkymän konesaliin yhtenä suurena resurssina, selkeyttäen kokonaisuuden hallinnoimista. Kubernetes siis auttaa konesalin ylläpidossa.

Lisätietoa

Linkit ulkopuolisiin lähteisiin

Avainsanat harjoitustehtävän repositoriossa