docker - 如何在Kubernetes中进行多容器部署

标签 docker deployment kubernetes

我有两个docker image Mosquittouser-infouserInfo是执行某些逻辑,然后将结果发送到mosquitto的容器。然后Mosquitto使用此信息将其发送到IOT集线器。我提到的user-info内部使用hostname=mosquitto,因此user-info将所有数据发送到mosquitto

首先,我用这两个容器创建了一个容器。所以我用kind: Pod编写了一个yaml文件,一切正常。由于这些容器位于同一个容器中,因此它们可以轻松地彼此通信,因此user-info能够将数据发送到mosquitto

现在,我不想创建Pod,而是想使用kind: Deployment,但我想知道在部署中不能创建多个Pod。因此,如果我为mosquitto-deployment.yamluser-info-deployment.yaml创建两个部署文件,它们都将创建两个不同的容器。那么如何使这些 pods 进行交流呢?

我阅读了有关服务的信息,我们可以使用服务进行通信,但是我在服务方面遇到了困难。如果我为mosquitto创建服务,是否需要为user-info创建服务,或者它可以直接与mosquitto服务通信。另外,不可能使用单个deploy.yaml文件创建所有Pod,而不是使用2-3 deployment.yaml文件。

最佳答案

在单独的部署中拥有两个不同的软件是有意义的。只要您用---分隔线将它们分开,就可以将它们都放在一个yaml文件中,但这本质上与为每个文件都具有单独的文件相同。

您需要为一组Pod(0-N)提供服务,群集中的某物(或NodePort和LB svc的外部)需要连接到这些Pod,因此在您的情况下,您只需要Mosquitto的svc,除非其他情况也是如此。与用户信息交谈。

您可以考虑将服务作为位于所选Pod组前面的负载平衡器。

关于docker - 如何在Kubernetes中进行多容器部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49146940/

相关文章:

docker - 通过 Docker Operator 在 Airflow 中运行 DBT

Docker - 绑定(bind) 0.0.0.0 :4000 failed: port is already allocated

docker - 对于 Gitlab CI,deploy.sh 文件是什么样的?

python - gcloud 函数使用 os.subprocess : [WinError 2] The system cannot find the file specified 进行部署

node.js - bcrypt安装成功后失败

docker - docker --add-hostname不适用于Windows容器

docker - 如何路由到服务中的特定容器

java - 从 : [/var/run/secrets/kubernetes. io/serviceaccount/token] 读取服务帐户 token 时出错。忽略

azure - 运行 Kubernetes 配置脚本(Microsoft Azure 中的 Kubernetes + CoreOS)以在生产环境中运行需要进行更改吗?

sql-server - 更改受 RLS (SSDT) 保护的 SQL 表