Writing

Čo sú to kontajnery?

Úvod do kontajnerov, Linux cgroups, menných priestorov a modernej kontajnerizácie.

Table of Contents
  1. Čo sú to kontajnery?
  2. Linux cgroups a Namespaces (menné priestory)
  3. Ľahká virtualizácia
  4. Izolácia prostredia
  5. Štandardizovaný formát balenia a cieľové prostredie
  6. Škálovateľnosť
  7. Kľúčové pojmy kontajnerizácie
  8. Záver
  9. Referencie:
  • Kontajner je technológia na zabalenie aplikácií a ich závislostí a ich spúšťanie v izolovanom prostredí.

Hlavným cieľom kontajnerizácie je ponúknuť lepší spôsob vytvárania, balenia a nasadzovania softvéru v rôznych prostrediach predvídateľným a ľahko spravovateľným spôsobom.

Čo sú to kontajnery?

Kontajnery predstavujú virtualizačnú technológiu na úrovni operačného systému, ktorá sa používa na balenie aplikácií a ich závislostí a ich spúšťanie v izolovaných prostrediach. Poskytujú ľahkú metódu štandardizovaného nasadzovania aplikácií naprieč rôznymi typmi infraštruktúry.

Linux cgroups a Namespaces (menné priestory)

Jadro Linuxu disponuje funkciami, ktoré to umožňujú. Kontrolné skupiny Linuxu (cgroups) sú funkciou jadra, ktorá umožňuje zoskupovať, izolovať a spravovať procesy a ich systémové zdroje ako celok. cgroups určujú, k akým zdrojom majú procesy prístup, a umožňujú monitorovanie ich správania.

Druhou kľúčovou funkciou jadra sú menné priestory (namespaces). Menné priestory obmedzujú to, čo môžu procesy vidieť zo zvyšku systému. Procesy bežiace v mennom priestore nevidia nič mimo svojho priestoru. Vnútri menného priestoru sa hlavný proces stáva PID 1, vďaka čomu sa procesy v kontajneri správajú, akoby bežali v bežnom samostatnom operačnom systéme.

Ľahká virtualizácia

V porovnaní s hardvérovou virtualizáciou pomocou virtuálnych strojov (VM) sú kontajnery mimoriadne ľahké. Namiesto virtualizácie hardvéru a behu celého samostatného OS využívajú kontajnery jadro hostiteľa a bežia ako oddelené procesy.

Z pohľadu hostiteľa bežia kontajnery ako bežné procesy – rýchlo štartujú a spotrebúvajú minimum zdrojov. Samotné obrazy kontajnerov môžu byť veľmi malé, čo umožňuje rýchle sťahovanie najnovších verzií bez zbytočného zdržania.

Izolácia prostredia

Vďaka cgroups a menným priestorom sú kontajnery izolované od hostiteľa aj od seba navzájom. Predchádza sa tým konfliktom knižníc a portov, keďže každý kontajner spravuje softvér v oddelenom súborovom a sieťovom systéme.

Štandardizovaný formát balenia a cieľové prostredie

Obrazy kontajnerov umožňujú zabaliť aplikáciu a všetky jej runtime požiadavky do jedinej jednotky, ktorú možno nasadiť na akejkoľvek infraštruktúre. Pokiaľ je runtime funkčný, kontajner beží rovnako v produkcii ako vo vývojovom prostredí.

Škálovateľnosť

Kontajnerová paradigma umožňuje jednoduché škálovanie aplikácií. Malé veľkosti obrazov a rýchle spúšťanie uľahčujú budovanie škálovateľných systémov, najmä v kombinácii s architektúrou mikroslužieb.

Kľúčové pojmy kontajnerizácie

  • Kontajner (Container): Virtualizácia na úrovni OS na izolovaný beh aplikácií.
  • Obraz kontajnera (Container Image): Statický súbor definujúci súborový systém a konfiguráciu kontajnera.
  • Orchestrácia kontajnerov: Nástroje na správu flotily kontajnerov naprieč viacerými hostiteľmi (napr. Kubernetes).
  • Kontajnerový runtime: Komponent, ktorý priamo spúšťa a spravuje kontajnery na hostiteľovi.
  • Docker: Platforma, ktorá spopularizovala Linux kontajnery, vrátane nástrojov na tvorbu a správu obrazov.
  • Dockerfile: Textový súbor s inštrukciami na zostavenie obrazu kontajnera.
  • Kata Containers: Ľahké virtuálne stroje prinášajúce vyššiu bezpečnosť pri zachovaní výhod kontajnerov.
  • Kubernetes: Špičková platforma pre orchestráciu kontajnerov vo vysoko dostupných produkčných prostrediach.
  • Linux cgroups: Funkcia jadra pre zoskupovanie a obmedzovanie prostriedkov procesov.
  • Linux namespaces: Funkcia jadra pre izoláciu viditeľnosti systémových zdrojov.
  • LXC: Pôvodná technológia Linux kontajnerov predchádzajúca Dockeru.
  • Virtuálne stroje (VM): Hardvérová virtualizácia emulujúca celý počítač s vlastným OS.

Záver

Kontajnery ponúkajú obrovské výhody oproti behu aplikácií priamo na hardvéri alebo vo virtuálnych strojoch vďaka ľahkej izolácii, flexibilite a bohatému ekosystému.

Referencie:

https://www.suse.com/c/rancher_blog/what-are-containers/

Related Posts