use*_*986 3 kubernetes kubernetes-pod
在属于同一副本集(部署)的 Pod 之间进行通信的推荐方式是什么?是否可以从给定的 pod 中查找其他 pod 的 url?
或者副本集不是一个正确的方法?
寻找正确的 k8s 方法来做到这一点。谢谢!
您可以将StatefulSet与Headless Service结合使用。StatefulSet 的特性之一是独特的一致命名约定:
对于具有 N 个副本的 StatefulSet,StatefulSet 中的每个 Pod 都将被分配一个从 0 到 N-1 的整数序数,该序数在 Set 中是唯一的。
因此,如果您有三个 MyPod 副本,您知道名称将是MyPod-0
, MyPod-1
, MyPod-2
。然后,如果您将它们绑定到名为 的 Headless Service MyHeadlessService
,您将能够通过以下方式访问您的 Pod:
MyPod-0.MyHeadlessService
MyPod-1.MyHeadlessService
MyPod-2.MyHeadlessService
Run Code Online (Sandbox Code Playgroud)
要看到这一点,你可以执行MyPod-0
kubectl exec -it MyPod-0 /bin/bash
Run Code Online (Sandbox Code Playgroud)
然后 pingMyPod-1
ping MyPod-1.MyHeadlessService
Run Code Online (Sandbox Code Playgroud)
网上有很多这种模式的示例,您可以决定它是否适合您的用例。有趣的是,ElasticSearch 和 Vault 等集群相关技术使用这种模式进行节点间通信。
归档时间: |
|
查看次数: |
1364 次 |
最近记录: |