IPC против пространства имен UTS

393
MikiBelavista

Я изучаю 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 в действии говорит, что

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

Означает ли это, что контейнеры вне одного и того же контейнера не могут обмениваться данными через IPC? Как они общаются? Зачем нам нужен IPC?

1

1 ответ на вопрос

3
grawity

Пространства имен UTS содержат только два идентификатора: имя хоста системы и (редко используемое) имя домена NIS.

Пространства имен IPC содержат особый тип объектов IPC, известных как «POSIX IPC» и «SysV IPC» - области общей памяти, очереди сообщений и семафоры. Они не включают ни TCP / IP, ни доменные сокеты Unix, ни другие способы связи.

(TCP / IP изолируется с помощью сетевых пространств имен, хотя обычно контейнерам преднамеренно предоставляется виртуальный интерфейс для доступа к основной сети. Доменные сокеты Unix изолируются с помощью пространств имен монтирования, так как они следуют тем же правилам, что и пути к файлам.)

См. Справочную страницу пространства имен (7) для более подробного объяснения.