面试题
面试题
1. pod 与pod 之间是如何通信的
1.1 同一个node 上pod容器之间的通信
Pod1与Pod2都是通过veth连接到同一个docker0 网桥上,他们的IP地址IP1 与IP2 都是从docker0 的网段上获取的,他们和网桥本身的IP3 是同一个网段
1.2 docker 中的namespace 与cgroup
namespaces
docker 通过namespace实现资源隔离,通过cgroup 实现资源限制,通过写时复制技术(copy-on-write)实现了文件操作
命名空间(namespace)是linux为我们提供的用于分离进程树、网络接口、挂载点以及进程间通信等资源的方法。
当我们运行(docker run 或者docker start)一个docker 容器时,docker 会设置一系列的namespaces,这些namespaces提供了一层隔离,容器的各个方面都在单独的namespaces中运行,并且对其的访问权限仅限该namespaces
docker 在linux 上使用以下几个命名空间:
pid namespaces 用于进程隔离
net namespaces 管理网络接口
ipc namespaces 管理对IPC资源的访问(IPC: 进程间通信(信号量、消息队列和共享内存))
mnt namespaces 管理文件系统挂载点
ust namespaces 隔离主机名和域名
user namespaces 隔离用户和用户组
CGgoup
linux Cgroup 可让你为系统中所运行任务(进程)的用户定义组