问题设置。假设我有 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。