k8s:在相同部署的Pod之间进行通信

时间:2020-09-24 18:51:06

标签: kubernetes kubernetes-pod

在属于同一副本集(部署)的Pod之间进行通信的推荐方法是什么?是否可以查找给定Pod中其他Pod的网址?

或者副本集不是正确的做法吗?

寻找正确的k8s方法来执行此操作。谢谢!

1 个答案:

答案 0 :(得分:3)

您可以将StatefulSetHeadless Service结合使用。 StatefulSet的功能之一是唯一的一致命名约定:

对于具有N个副本的StatefulSet,StatefulSet中的每个Pod将为 分配了一个从0到N-1的整数序数,该序数是唯一的 在布景上。

因此,如果您拥有MyPod的三个副本,则知道名称将为MyPod-0MyPod-1MyPod-2。然后,如果您将它们绑定到名为MyHeadlessService的无头服务,则可以通过以下方式到达您的吊舱:

MyPod-0.MyHeadlessService
MyPod-1.MyHeadlessService
MyPod-2.MyHeadlessService

要查看此内容,您可以执行MyPod-0

kubectl exec -it MyPod-0 /bin/bash

然后ping MyPod-1

ping MyPod-1.MyHeadlessService

在线有很多关于此模式的示例,您可以确定它是否适合您的用例。有趣的是,与集群相关的技术(例如ElasticSearch和Vault)使用此模式进行节点间通信。