属于 同一 statefulset 的 Pod 之间 的 通信 建议 方式 是 什么 ?
在 我 的 例子 中 , kubernetes 服务 公开 了 一 个 POST API , 所以 当 有人 点击 这个 API 时 , 得到 请求 的 pod 应该 也 把 请求 传递 给 同一 个 statefulset 中 的 其他 pod 。
由于 我 使用 的 是 statefulset , 如果 我 有 三 个 pod , 假设 这些 pod 的 名称 分别 是 Pod1
、 Pod2
和 Pod3
, 如果 我 将 这些 pod 绑定 到 一 个 无头 服务 ( 例如 MyService
) , 我 将 能够 通过 Pod1.MyService
、 Pod2.MyService
Pod3.MyService
。 我 可以 遍历 Pod id 并 将 请求 复制 到 所有 pod 。 但 在 这种 情况 下 , 我 不 应该 将 此 请求 传递 到 已 接收 请求 的 pod 。 假设 Pod2
接收 到 API 请求 ,它 应该 将 该 请求 传递 到 x1M8N1x 和 x1M9N1x 。
在 Go 语言 中 有 没有 用 Kubernetes 客户 端 实现 这 一 点 ? 给 我 指 一 个 类似 的 例子 也 会 有所 帮助 。
1条答案
按热度按时间eanckbw91#
通过
fieldRef
将名称反映到环境变量,让pod知道自己的身份。StatefulSet
清单的 template 部分示例:在这里,pod name 作为
REPLICA_NAME
可用于示例。您可能还需要让示例知道有多少副本,但我不知道一个好的 * 自动 * 方法来完成此操作,您也可以为此设置一个变量,例如: