我正在学习 Kubernetes,它们似乎在容器实现中扮演着至关重要的角色。它们允许我们在独立的进程之间隔离全局系统资源。但我仍然不了解整个情况。我的 pod
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)手册页以获取更详细的解释。