Arbeide med NSenter Linux -kommandoen

Arbeide med NSenter Linux -kommandoen
En måte å innkapsling av vertssystemet når du kjører forskjellige prosesser på er ved å bruke containere. For DevOps har containere blitt veien videre for applikasjonsutplassering da de garanterer sikkerhet og isolering av hele systemet og ressursene. Isolasjonen av systemressursene fungerer via Linux navnefelt. En container fungerer uavhengig, og den har ikke tilgang til vertsressursene.

Kjernen kan tildele og begrense ressursene som prosessene som kjører, kan få tilgang til gjennom navneområdene. Navneområdene skaper isolasjon, og containere ser bare prosesser. Å enkelt jobbe med container og navneområder, nsenter Linux -kommandoen er påkrevd, og vi vil se hvordan du bruker NSenter for å inspisere og utføre programmer i navnefeltet.

Hvordan inspisere Linux -navnefelt ved hjelp av NSenter

Før vi dykker ned i å bruke NSenter, må vi forstå Linux -containere og navneområder.

Hva er Linux -containere?

Med økende teknologi har etterspørselen etter å utvikle mer skalerbare og sikre applikasjoner strekke behovet for å bruke containere. Linux -containere kan best sies å være en teknologi som tillater emballasje og isolering av applikasjoner og ressurser i deres runtime -miljø, vekk fra systemet. Dessuten kan du også lage containere som inneholder navneområder for forskjellige prosesser på Linux -systemet ditt ved å bruke forskjellige verktøy, for eksempel Podman eller Docker.

For dette eksemplet vil vi lage en ny beholder ved hjelp av Docker, som vist på bildet nedenfor.

Gå ut av beholderen og liste til de tilgjengelige beholderne fra vertssystemet. Du vil merke at containeren vi opprettet blir oppført, inkludert container -ID.

$ sudo docker ps -l

Alternativt, hvis du bruker Podman Red Hat tilbyr en beholder i katalogen som du kan få tilgang til ved å bruke kommandoen nedenfor.

$ Podman Run -Name Namespace -Demo -It Registry.adgang.Rød hatt.com/ubi8/ubi/bin/bash

Når du har opprettet beholderen, må du liste prosess -IDen til beholderen som er opprettet ved å bruke kommandoen nedenfor.

$ runc -liste

I utgangen bør du merke prosess -IDen. I vårt tilfelle er IDen 39782.

Ved hjelp av prosess -ID ovenfor kan du få navneområdene tilknyttet den ved hjelp av LSNS eller nsenter.

Å bruke LSNS, Bruk syntaksen nedenfor.

$ lsns -p

I motsetning til LSN -er, tilbyr NSenter flere alternativer, og gir deg mer kontroll.

Bruker nsenter med Linux -navneområder

Noen av de vanlige alternativene du kan bruke med NSenter inkluderer:

1. -t: Dette flagget spesifiserer målprosess -ID.

2. -u: Det brukes til å gå inn i prosessens navneområde, og hvis det ikke legges inn noe navneområde, vil den bruke målprosessen.

For eksempel, for å få vertsnavnet til navneområdet med ID 39782, ville kommandoen være:

$ nsenter -t 39782 -u vertsnavn

3. -en: Brukes til å legge inn alle tilgjengelige navnefelt. I vårt tilfelle har vi bare en. Hvis vi kjører kommandoen nedenfor, vil du merke at vi er inne i beholderen.

Du kan logge ut ved å skrive exit.

4. -n: Flagget brukes til å komme inn i nettverksområdet. Bare nettverksinformasjonen for det gitte navneområdet blir sett på.

Hvis du skulle se de samme nettverksdetaljene fra det komplette systemet, vil du legge merke til at det er isolasjon.

Isolasjonen strekker seg til IP -rute, Og vi kan også få IP -ruten for navneområdet ved å bruke kommandoen nedenfor.

$ nsenter -t 39782 -n ip -rute

På bildet over kan du merke hvordan den første utgangen er for navneområdet til den gitte målprosess -IDen, men den andre utgangen er IP -ruten for det komplette systemet.

5. -p: Ved hjelp av nsenter kan du også gå inn i PID -navneområdet ved hjelp av -p flagg. For at dette skal fungere, bør du ha topp eller PS Kommandoer installert inne i beholderen.

Hvis du opprettet Podman beholder, bruk kommandoen nedenfor for å installere Procps-ng Pakke, som installerer topp og PS for å se på de for øyeblikket kjørende prosessene ved å bruke PS -ef Linux -kommando.

$ yum install procps-ng

Du kan nå gå inn i PID -navneområdet ved å bruke kommandoen nedenfor.

$ nsenter -t 39782 -p -r ps -ef

De -r Angir rotkatalogen, og hvis ingen er spesifisert, som i kommandoen nedenfor, bruker den den for målprosess -IDen.

Utgangen gir den for øyeblikket kjørende prosessen i beholderen.

Konklusjon

Som utvikler kan du ikke unngå å bruke Linux -containere. Den beste tilnærmingen er å utstyre deg med verktøy som gjør at du kan samhandle med de forskjellige navnefeltet for prosesser i separate containere. Takket være containere er isolasjonen av prosesser som kjører på Linux mulig. Vi har dekket hvordan du bruker nsenter Linux -kommandoen for å legge inn navneområdene til forskjellige prosesser i hvilken som helst beholder. Fortsett å øve og prøve andre taktikker for å forstå verktøyet bedre.