
首先,Pod 是 K8s 调度的最小单元,为什么是 Pod 而不是容器作为最小调度单元呢?其实是为了解决容器的可管理性和资源共享问题。
1、可管理性
前面有提到,一个 Pod 可包含一个或多个容器,Pod 中的容器会被作为最小调度单元被 Master 调度到 K8s 集群中的 Node 节点上运行。既然一个 Pod 可包含多个容器,那对于那些联系紧密的容器就更易于管理,因为我们可以将这些联系紧密的容器封装到一个 Pod 单元中,然后 K8s 就可以进行统一调度了。
2、容器通信及资源共享
Pod 中的所有容器共享同一资源(同一个网络 namespace),即相同的 IP:Port 空间,它们可直接以 localhost 的方式通信。当 K8s 挂载 Volume 到 Pod 时,实际就是将 Volume 挂载到 Pod 中的每个容器上(因为它们资源共享),如下图所示:

整体流程:
- Pod 中包含两个容器,分别是
Container-A、Container-B; Container-A定期从外部Resources获取资源,然后将资源存放在共享Volume中;Container-B从共享Volume中读取资源,并响应Request的请求。
Pod是K8s的最小调度单元,它允许多个紧密关联的容器共享资源和网络空间,简化了管理和通信。容器通过共享Volume进行数据交互,例如Container-A获取外部资源后存储在Volume,Container-B则能直接访问这些资源来响应请求。
3万+

被折叠的 条评论
为什么被折叠?



