Sobes.tech
Senior

Kako funkcioniše kontejnerizacija? Pričaj mi više o namespace-ovima.

sobes.tech АИ

Одговор од АИ

Kontejnerizacija omogućava izolaciju aplikacija i njihovog okruženja, tako da rade identično u različitim okruženjima. Osnova izolacije u Linuxu su namespace-ovi, mehanizmi jezgra koji kreiraju odvojene prostore imena za procese.

Namespace-ovi dele sistemske resurse:

  • PID namespace — izoluje identifikatore procesa, tako da procesi u kontejneru vide samo svoje PID-ove.
  • Mount namespace — odvojena tačka montiranja fajl sistema.
  • Network namespace — sopstveni mrežni stek (interfejsi, IP adrese).
  • UTS namespace — izolacija imena hosta i domena.
  • IPC namespace — izolacija međuprocesne komunikacije.
  • User namespace — omogućava mapiranje UID i GID unutar kontejnera drugačije nego na hostu, povećavajući sigurnost.

Na primer, kada se pokrene kontejner, kreira se skup ovih namespace-ova, i procesi unutar njega vide samo svoje resurse, što obezbeđuje izolaciju i sigurnost. U Go-u, sa namespace-ovima se može raditi putem sistemskih poziva, na primer, koristeći paket syscall za kreiranje novih namespace-ova pri pokretanju procesa.