Hopp til innhold

Fagstoff

Serverkonteinere

Serverkonteinere (containers) er en virtualiseringstype som kjører på toppen av verts-OS til en datamaskin, i motsetning til virtuelle maskiner der selve maskinvaren er virtualisert. Konteinere inneholder bare programmer og filer som trengs for tjenesten konteineren skal levere.
En truck stabler konteinere. Foto.
Åpne bilde i et nytt vindu

Hva er serverkonteinere?

Serverkonteinere (containers) er en form for virtualisering der vi i stedet for å virtualisere maskinvaren til datamaskiner, som med virtuelle maskiner, lager en konteiner med nødvendige filer og programmer som trengs for å levere en spesifikk tjeneste. Konteinerne er avhengige av vertsmaskinens operativsystem for å fungere.

Sammenligning mellom virtuell maskin til venstre og serverkonteiner til høyre, illustrert ved bokser som er oppå hverandre. Til venstre står det Maskinvare nederst, og over der igjen står det Type 1-hypervisor. Opp fra denne boksen går det to like felt, merket med overskriftene Virtuell maskin 1 og Virtuell maskin 2. Hvert av feltene har følgende bokser, fra nederst til øverst: Virtuell maskinvare, Operativsystem, Biblioteker, Mellomvare, Dataprogram. Til venstre står det Maskinvare nederst, og over der igjen står det Vertsoperativsystem. Deretter er det en boks med Konteinermotor. Opp fra denne boksen går det tre like felt, merket med overskriftene Konteinermotor 1, Konteinermotor 2 og Konteinermotor 3. Hvert av feltene har følgende bokser, fra nederst til øverst: Konfigurasjonsfil, Biblioteker, Mellomvare, Dataprogram. Illustrasjon.
Åpne bilde i et nytt vindu

Konteinerne er lagd for ikke å påvirke hverandre eller vertsoperativsystemet med mindre dette er konfigurert inn. Dette resulterer i økt sikkerhet på samme måte som med virtuelle maskiner, men uten å måtte ha komplette virtuelle maskiner som må holdes oppdaterte. Dette sparer lagringsplass, systemressurser og gjør serverkonteinere veldig fleksible og effektive.

Fordi hver konteiner har så lite ressursavtrykk, altså at den bruker lite systemressurser for å kjøre, er det vanlig å sette opp en tjeneste per konteiner. Dette kalles mikrotjenester, og du kan lese mer om det på sida Mikrotjenester (NDLA).

De vanligste konteinerløsningene

Docker, rkt, LXC og Hyper-V Containers er eksempler på konteinerstandarder som er mye brukt.

De forskjellige konteinerstandardene fungerer noe forskjellig, men har mange fellestrekk. Blant annet er hver konteiner definert av ei konfigurasjonsfil (container config file). Denne beskriver hva som skal være i konteineren, hvordan den skal settes opp, og hvordan konteineren skal kommunisere med andre maskiner eller konteinere over nettverk og API-er. Dette gjør at konteinere lett kan settes sammen og tilpasses nye miljøer.

For oppsett på kryss av servere er det vanlig å sette opp en klynge (cluster) og bruke et konteinerhåndteringssystem (container orchestration system). Dette gjør det mulig å flytte konteinerne mellom fysiske servere samt lage og kjøre flere samtidige konteinerkopier (instance) for å øke kapasitet ved høy belastning. Klynger og konteinerhåndteringsystem kan du lese mer om på sida Når servere arbeider sammen (NDLA).

Virtuelle maskiner og serverkonteinere i det samme systemet?

I artikkelen har vi skilt mellom virtuelle maskiner og konteinerløsninger. I praksis kan begge deler brukes i det samme systemet, for eksempel hvis du leier en virtuell maskin hos en skyleverandør og setter opp operativsystem, konteinermotor og konteinere i den virtuelle maskinen. Vi skal ikke gå nærmere inn på dette her, men det er greit å være klar over at en slik kompleksitet ikke er uvanlig i ekte driftsituasjoner.

I YouTube-videoen fra IBM med Sai Vennam kan du lære litt mer om konteinere.

CC BY-SASkrevet av Tron Bårdgård.
Sist faglig oppdatert 29.04.2021

Læringsressurser

Virtualisering av IT-ressurser