Я изучаю Kubernetes, и мне кажется, что они играют важную роль в реализации контейнеров. Они позволяют нам изолировать глобальные системные ресурсы между независимыми процессами. Но я все еще не понимаю всей картины. Мои модули
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 говорит, что
all containers of a pod run under the same IPC namespace
and can communicate through IPC
Означает ли это, что контейнеры вне одного и того же pod не могут общаться через IPC? Как они общаются? Зачем нам нужен IPC?
решение1
Пространства имен UTS содержат всего два идентификатора: имя хоста системы и (редко используемое) доменное имя NIS.
Пространства имен IPC содержат определенный тип объектов IPC, известных как "POSIX IPC" и "SysV IPC" – общие области памяти, очереди сообщений и семафоры. Они не включают TCP/IP, сокеты доменов Unix или другие методы связи.
(TCP/IP изолируется с помощьюсетьпространства имен, хотя обычно контейнерам намеренно дается виртуальный интерфейс, через который можно достичь основной сети. Сокеты домена Unix изолируются с помощьюустанавливатьпространства имен, поскольку они следуют тем же правилам, что и пути к файлам.)
Смотритепространства имен(7)страницу руководства для более подробного объяснения.