问题设置。假设我有 2 个 pod,A 和 B。我希望能够根据任意来源的任意数量动态扩展 pod A。假设 pod B 是这样的源:例如,它可以拥有一个带有端点的 HTTP 服务器,该端点在请求时以 pod A 的所需副本数量进行响应。或者它可能是 ES 服务器或 SQL DB(没关系)。
问题。我需要定义哪些 kubernetes 对象才能实现此目的(HPA 除外)?HPA 需要什么配置才能知道它需要查找 B 来获取当前指标?B 的 API 应该是什么样的(或者有什么限制吗?)?
我所做的研究。不幸的是,官方文档除了宣称存在这种可能性之外,并没有对此做太多说明。还有两个存储库,一个存储库包含一些我在构建时遇到问题的 go 样板代码,另一个存储库没有任何使用说明(尽管据称确实满足“通过 HTTP 的外部指标”要求)。
通过查看.yaml这些存储库中的配置,我得出了一个结论,除了Deployment需要Service定义一个APIService对象,该对象在 kubernetes API 中注册外部或自定义指标并将其与普通服务链接(您可以在其中使用pod)和一些ClusterRole和ClusterRoleBinding对象。但对此没有任何解释。此外,我什至无法像其他对象一样在本地集群(1.15 版本)中使用 kubectl 列出现有的 APIServices。