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.