Kubernetes - 如何将数据从pod发送到kubernetes中的另一个pod

问题描述 投票:2回答:2

在码头工人中,我有两个容器qazxsw poi和qazxsw poi

Mosquitto是一个容器,它执行一些逻辑,然后将结果发送到mosquitto容器。 Mosquitto容器然后使用此信息将其发送到IOT中心。为了在Docker中启动这些容器,我创建了一个网络并在同一网络中启动了这两个容器。所以我可以轻松地在userInfo容器中使用userInfo容器的主机名来发送数据。我需要在kubernetes中这样做。

所以在kubernetes,我做了什么,我部署了mosquitto所以它的POD被创建然后我创建了它的服务并在userinfo pod中使用它将数据发送到Mosquitto。但这不起作用。

我使用了创建服务

userInfo

我需要将mosquitto的数据发送到kubectl expose deployment mosquitto

  • 我怎样才能做到这一点。
  • 我是否需要创建网络,就像我在userInfo所做的那样,还是有其他办法。

我也尝试用两个容器创建一个容器,即Mosquittodockers,但这也没有用。

谢谢

docker kubernetes mosquitto kubernetes-pod kubernetes-service
2个回答
3
投票

Kubernetes pod可能包含多个容器。当两个容器紧密耦合时,人们通常在一个容器中运行多个容器,听起来这就是你正在寻找的东西。这些容器保证托管在同一台机器上(它们可以通过localhost相互联系),共享相同的端口空间,也可以使用相同的卷。 mosquitto


-1
投票

两个容器相同的POD

如果您对属于同一个POD的两个容器之间的通信感兴趣,那么官方文档中的userInfo将显示如何通过共享卷实现此目的。

Pod可以拥有多个容器的主要原因是支持辅助主应用程序的帮助应用程序。辅助应用程序的典型示例是数据提取器,数据推送器和代理。帮助程序和主要应用程序通常需要相互通信。通常,这是通过共享文件系统完成的,如本练习所示,或通过环回网络接口localhost完成。

如果您不需要,请尽量避免将两个容器放在同一个POD中。更多信息可以在这里找到:https://kubernetes.io/docs/concepts/workloads/pods/pod/#what-is-a-pod

两个容器两个POD

在这种情况下(对于前一种情况也可以这样做),最好的方法是通过the guide暴露容器的监听过程。

通过这种方式,您将始终可以依赖于相同的IP或域名(您只能在内部解析)和端口。 Multi-container pods and container communication in Kubernetes,如果您在Kubernetes Namespace service中有一个名为For example的服务,则会创建"my-service"的DNS记录。

网络部分由Kubernetes管理,因此您不需要做任何事情(在基本配置中),仅仅在创建服务时指示哪个是容器的目标端口以及客户端应该使用的端口并且映射是自动的。

然后,一旦暴露了端口和IP,如何实现通信,数据传输不再是Kubernetes问题。您可以通过具有静态内容的Web服务器,通过FTP,使用脚本发送SCP命令来实现它,基本上有无限的方法来执行它。

© www.soinside.com 2019 - 2024. All rights reserved.