Kubernetes 配置以链接容器

20

我正在尝试查找创建 Kubernetes POD 的示例,该示例启动2-3个容器,并且这些容器彼此链接,但未能找到任何相关示例。

是否有人尝试使用 Kubernetes 配置来链接容器?


我正在研究如何将像这个链接中的3层应用程序http://blog.thestateofme.com/2014/01/13/multi-tier-apps-in-docker-io/移植到Kubernetes。如果链接不被直接支持,那么有什么替代方案。 - Ashish Jain
http://kubernetes.io/docs/user-guide/services/#discovering-services - Chris S
本教程将解释如何在minikube(kubernetes)中创建一个php应用程序(pod),并将其连接到postgres数据库(pod):https://lvthillo.com/get-started-with-your-local-kubernetes/ - DenCowboy
4个回答

15

同一个 pod 中的容器共享 localhost,因此不需要链接容器,只需使用 localhost:containerPort。


2
这是最好的答案。您不需要像joh.scheuer建议的那样为共享同一pod的容器提供服务。(也许在当时您确实需要;9个月过去了,Kubernetes一直在不断发展。) - erstaples
这个回答是正确的,但更好的答案是由joh提供的。在Kubernetes中应该“链接”Pods而不是容器。 - Srini

6
您需要使用Kubernetes服务(代理)https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/services.md#how-do-they-work
请参考它们如何一起工作:https://github.com/GoogleCloudPlatform/kubernetes/tree/master/examples/guestbook 具体而言,与Docker类似的“链接”概念不存在。每个服务端点都是一个完全限定域名,您只需从一个容器调用另一个容器,并且可以使用容器上的每个标签来指示网络流量。因此,您不必使用ENV["$FOO_BAR_BAZ"]来获取正确的IP地址,只需直接调用它(curl http://foo_bar_baz)。

1
正如@Tony Dun的留言所示,您可以通过将它们包含在同一个Pod中来将容器链接在一起。它们将共享相同的网络堆栈。 - WedTM

0

Pod是Kubernetes中的基本部署单元。您可以在Pod中运行一个或多个容器。它们将共享相同的网络,即localhost。因此,您不需要指定链接URL,只需指定localhost:containerPort


0

我认为你在谈论单个Pod多容器配置。在Kubernetes中,小的单元是Pod。因此,Pod中的多个容器共享相同的IPC,不同容器中的多个进程可以通过localhost:process端口访问。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接