是否可以将 HPA 配置为与自定义指标服务器的不同 api-service 一起使用,而不是v1beta1.custom.metrics.k8s.io
?
就我而言,v1beta1.custom.metrics.k8s.io
已经绑定到其他一些指标服务器,我不想碰它。
我想创建自己的指标服务器,将其绑定到我自己的 api-service 并在我的命名空间中将此 api-service 与 HPA 一起使用。
是否可以将 HPA 配置为与自定义指标服务器的不同 api-service 一起使用,而不是v1beta1.custom.metrics.k8s.io
?
就我而言,v1beta1.custom.metrics.k8s.io
已经绑定到其他一些指标服务器,我不想碰它。
我想创建自己的指标服务器,将其绑定到我自己的 api-service 并在我的命名空间中将此 api-service 与 HPA 一起使用。
您可以按照官方文档中的指南为节点中可用的任何自定义指标创建 HPA 。
为了让您可以使用 API,metrics-server 通过以下 API 公开指标:
/nodes
- 所有节点指标;type []NodeMetrics
/nodes/{node}
- 指定节点的指标;type NodeMetrics
/namespaces/{namespace}/pods
- 命名空间内的所有 pod 指标,支持所有命名空间;type []PodMetrics
/namespaces/{namespace}/pods/{pod}
- 指定 pod 的指标;type PodMetrics
列出可用 API 的完整命令如下所示:
kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1"
如果您在 GCP 或其他云上工作,请参阅在 GCP 中部署自定义指标的指南
回复您的评论:
HPA 能够从以下位置读取指标:
HorizontalPodAutoscaler 的常见用途是将其配置为从聚合的 API(
metrics.k8s.io
、custom.metrics.k8s.io
或external.metrics.k8s.io
)中获取指标。API 通常由名为 Metrics Server的metrics.k8s.io
插件提供,需要单独启动。有关资源指标的更多信息,请参阅Metrics Server。
因此,您可以从中metrics.k8s.io
获取集群可用的任何内容。或者您可以创建自己的 APIService:
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
name: <name of the registration object>
spec:
group: <API group name this extension apiserver hosts>
version: <API version this extension apiserver hosts>
groupPriorityMinimum: <priority this APIService for this group, see API documentation>
versionPriority: <prioritizes ordering of this version within a group, see API documentation>
service:
namespace: <namespace of the extension apiserver service>
name: <name of the extension apiserver service>
caBundle: <pem encoded ca cert that signs the server cert used by the webhook>
请找到有关创建 APIService的完整指南。玩得开心 :)