Jądro może przydzielić i ograniczać zasoby, do których uruchomione procesy mogą uzyskać dostęp za pomocą przestrzeni nazw. Przestrzenie nazw tworzą izolację, a pojemniki wyświetlają tylko procesy. Aby łatwo pracować z pojemnikami i przestrzeniami nazwami, nsenter Polecenie Linux jest wymagane i zobaczymy, jak używać nSenter do kontroli i wykonywania programów w przestrzeni nazw.
Jak sprawdzić przestrzenie nazw Linux za pomocą nsenter
Zanim zagłębimy się w użycie nsenter, musimy zrozumieć pojemniki i przestrzenie nazw Linux.
Co to są pojemniki Linux?
Dzięki rosnącej technologii zapotrzebowanie na opracowanie bardziej skalowalnych i bezpiecznych aplikacji zwiększyło potrzebę korzystania z kontenerów. Pojemniki Linux można najlepiej powiedzieć, że jest technologią, która umożliwia opakowanie i izolowanie aplikacji i zasobów w środowisku czasu wykonawczego, z dala od systemu. Poza tym możesz także tworzyć kontenery zawierające przestrzenie nazw dla różnych procesów w systemie Linux za pomocą różnych narzędzi, takich jak Podman Lub doker.
W tym przykładzie utworzymy nowy kontener za pomocą Dockera, jak pokazano na poniższym obrazku.
Wyjdź z kontenera i wymień dostępne kontenery z systemu hosta. Zauważysz, że utworzony przez nas kontener jest wymieniony, w tym identyfikator kontenera.
$ sudo docker ps -l
Alternatywnie, jeśli używasz Podman Red Hat oferuje pojemnik w swoim katalogu, do którego można uzyskać dostęp do poniższego polecenia.
$ Podman Run -Nazwa nazwy Demo -it -it Registry.dostęp.czerwony kapelusz.com/ubi8/ubi/bin/bash
Po utworzeniu kontenera wyświetl identyfikator procesu kontenera utworzonego za pomocą poniższego polecenia.
Lista $ runc
W wyjściu należy zwrócić uwagę na identyfikator procesu. W naszym przypadku identyfikator jest 39782.
Korzystając z powyższego identyfikatora procesu, możesz podać powiązane przestrzenie nazw za pomocą za pomocą LSNS Lub nsenter.
Używać LSNS, Użyj składni poniżej.
$ lsns -p
W przeciwieństwie do LSN, NSenter oferuje więcej opcji, zapewniając większą kontrolę.
Korzystanie z NSenter z przestrzeniami nazw Linux
Niektóre z typowych opcji, których można użyć z NSenter, obejmują:
1. -T: Ta flaga określa identyfikator procesu docelowego.
2. -u: Służy do wprowadzania przestrzeni nazw procesu, a jeśli nie zostanie wprowadzona przestrzeń nazw, użyje procesu docelowego.
Na przykład, aby uzyskać nazwę przestrzeni nazw z ID 39782, poleceniem byłoby:
$ nsenter -t 39782 -U HostName
3. -A: używane do wprowadzania wszystkich dostępnych przestrzeni nazwisk. W naszym przypadku mamy tylko jeden. Jeśli uruchomimy poniższe polecenie, zauważysz, że jesteśmy w pojemniku.
Możesz wylogować się, wpisując Wyjście.
4. -N: Flaga służy do wprowadzania przestrzeni nazw sieci. Wyświetlane są tylko informacje sieciowe dla danej przestrzeni nazw.
Jeśli wyświetlisz te same szczegóły sieci z pełnego systemu, zauważysz, że jest izolacja.
Izolacja rozciąga się na Trasa IP, i możemy również uzyskać trasę IP dla przestrzeni nazw za pomocą poniższego polecenia.
$ nsenter -t 39782 -n IP Route
Na powyższym obrazku można zauważyć, jak pierwsze wyjście jest przestrzeni nazw danego docelowego identyfikatora procesu, ale drugie wyjście jest trasą IP dla pełnego systemu.
5. -P: Korzystając z NSenter, możesz również wprowadzić przestrzeń nazw PID za pomocą -P flaga. Aby to zadziałało, powinieneś mieć szczyt Lub Ps Polecenia zainstalowane wewnątrz kontenera.
Jeśli utworzyłeś Podman kontener, użyj poniższego polecenia, aby zainstalować procps-ng pakiet, który instaluje TOP i PS, aby pomóc wyświetlić aktualnie uruchomione procesy za pomocą Ps -ef Polecenie Linux.
$ yum instaluj procps-ng
Możesz teraz wprowadzić przestrzeń nazw PID za pomocą poniższego polecenia.
$ nsenter -t 39782 -p -r ps -ef
-R ustawia katalog główny, a jeśli nie zostanie określony, jak w poniższym poleceniu, używa docelowego identyfikatora procesu.
Dane wyjściowe zapewnia aktualnie działający proces w pojemniku.
Wniosek
Jako programista nie można uniknąć za pomocą kontenerów Linux. Najlepszym podejściem jest wyposażenie się w narzędzia, które umożliwiają interakcję z różnymi przestrzeniami nazw dla procesów w osobnych pojemnikach. Dzięki pojemnikom możliwe jest izolacja procesów działających w Linux. Omówiliśmy sposób korzystania z nsenter Polecenie Linux, aby wprowadzić przestrzeni nazw różnych procesów w dowolnym pojemniku. Ćwicz i próbuj innych taktyk, aby lepiej zrozumieć narzędzie.