使用Docker landscape几个月之后,我仍然发现使用Kubernetes Pod非常直观。我没有遇到任何使用pod的情况比容器更自然的用例。当我被要求使用Pod时,我通常只使用一个容器Pod。我正在尝试做一个展示pod概念强度的演示,但我无法弄清楚一个非繁琐的用例。
在我的演示中,我启动了一个服务器pod,其中两个服务容器在不同的端口上进行侦听,一个用于将字母转录为大写字母,另一个用于将字母转录为小写字母。然后我有一个客户端pod,有两个客户端容器与每个服务器容器对话......这个用例似乎真的被迫,我不明白为什么我需要使用Pod概念。
我已经阅读了很多教程和文档,他们都只是触及什么是pod,没有令人信服的用例为什么我们必须使用pod ...我错过了什么?使用Pod概念的可靠用例是什么?感谢。
编辑: 具体来说,假设有两个服务A和B需要共址和共享网络堆栈,这很适合Pod概念。与在同一容器中运行的服务A和B相比,使用Pod(具有运行服务A和服务B的两个并置容器)的优势是什么,这保证了并置和共享网络堆栈?粒度是否有经验法则?
我最初的问题是要找出需要共址和共享网络堆栈的服务A和服务B.感谢Jared和Robert的指点,我将深入研究这些用例。
答案 0 :(得分:1)
Jared在上面的评论中指出了一些很好的例子。正如Brian Grant在链接的github问题中提到的那样,推送日志数据和加载数据是Google内部最常见的用途。
对于Kubernetes存储库中的具体示例,您可以查看DNS cluster add-on的定义。它使用一个pod来共同定位一个DNS服务器(skyDNS),使用etcd的本地存储,以及一个简单的程序来将Kubernetes API对象拉下来,转换它们并将它们放入本地存储。该pod不是构建新的自定义DNS服务器,而是利用现有的DNS服务器并为其添加一些自定义功能,以使其了解群集环境。由于所有容器都在一个容器中,因此它们可以依靠localhost网络进行通信,而不需要任何形式的复杂服务发现。