繁体   English   中英

如何在 Kube.netes Deployment 中添加 docker 容器主机名和.network?

[英]How to add docker container hostname and network in Kubernetes Deployment?

我有 docker 个不同麋鹿堆栈的图像,我想在它们之间进行通信。 我通过创建一个 docker.network 并通过主机名访问它们来实现它。 我想知道我们是否可以在 kube.netes 中传递这个属性? 我们可以在那里创建一个 docker.network 吗? 我们如何在部署 yaml 中传递这些属性?

我创建了一个名为“elk”的 docker.network,然后在运行 arguments 中传递了它(如 docker run -.network=elk -h elasticsearch ....)我希望在 kube.netes 中创建 this.network集群,然后将这些属性传递给部署 yaml

Kube.netes 没有 Docker 的每个应用程序独立网络的概念。 您无法在 Kube.netes 中重现此 Docker 设置,也不需要这样做。 另请参阅 Kube.netes 文档中的服务、负载平衡和网络

在 Kube.netes 中,您通常不直接与 Pod(容器)通信。 相反,您还创建一个与每个 Deployment 匹配的服务,然后调用服务名称和端口。

如果您当前正在使用docker run -.net=...部署容器,那么在迁移到 Kube.netes 时可以忽略该选项。 如果您使用的是 Compose,我建议首先尝试更新 Compose 设置以仅使用 Compose 提供的default .network,删除所有networks:块。

对于像 Elasticsearch 这样的东西,你可能想在StatefulSet中运行它,它也可以管理每个副本的存储。 这对相应的服务有特定的要求,并且它确实提供了一种在需要时连接到特定副本的方法。 与这个问题相关,如果 StatefulSet 被命名为elasticsearch那么 Pod 将被命名为 elasticsearch elasticsearch-0elasticsearch-1等等,并且这些名称也将作为容器内的主机名(8)可见,匹配docker run -h选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM