IPC versus UTS-Namespace

IPC versus UTS-Namespace

Ich lerne Kubernetes und es scheint, dass sie eine entscheidende Rolle bei Containerimplementierungen spielen. Sie ermöglichen uns die Isolierung globaler Systemressourcen zwischen unabhängigen Prozessen. Trotzdem verstehe ich nicht das ganze Bild. Meine Pods

kubectl get pods -o wide
NAME          READY     STATUS    RESTARTS   AGE       IP          NODE
kubia-bzp4j   1/1       Running   0          17h       10.44.1.5   gke-kubia-default-pool-98519add-5kfr
kubia-hzd8b   1/1       Running   0          1h        10.44.0.7   gke-kubia-default-pool-98519add-hsrc
kubia-kgbtb   1/1       Running   0          1h        10.44.2.5   gke-kubia-default-pool-98519add-25c1

Kubernetes in Action sagt, dass

all containers of a pod run under the same IPC namespace
and can communicate through IPC

Bedeutet dies, dass Container außerhalb desselben Pods nicht über IPC kommunizieren können? Wie kommunizieren sie? Warum brauchen wir IPC?

Antwort1

UTS-Namespaces enthalten nur zwei Bezeichner: den System-Hostnamen und den (selten verwendeten) NIS-Domänennamen.

IPC-Namespaces enthalten eine bestimmte Art von IPC-Objekten, die als „POSIX IPC“ und „SysV IPC“ bekannt sind – gemeinsam genutzte Speicherbereiche, Nachrichtenwarteschlangen und Semaphoren. Sie enthalten weder TCP/IP noch Unix-Domain-Sockets oder andere Kommunikationsmethoden.

(TCP/IP ist isoliert durch die VerwendungNetzNamespaces, obwohl Container normalerweise absichtlich eine virtuelle Schnittstelle erhalten, über die sie das Hauptnetzwerk erreichen können. Unix-Domain-Sockets werden isoliert durch die Verwendung vonmontierenNamespaces, da für sie die gleichen Regeln gelten wie für Dateipfade.)

Sehen Sie sich dieNamensräume(7)Eine ausführlichere Erklärung finden Sie auf der Manualpage.

verwandte Informationen