Сервер метрик предоставляет метрики через нижеуказанные API.
/nodes
- все метрики узла; type []NodeMetrics
/nodes/{node}
- метрика для указанного узла; type NodeMetrics
/namespaces/{namespace}/pods
- все метрики модуля в пространстве имен с поддержкой всех пространств имен; type []PodMetrics
/namespaces/{namespace}/pods/{pod}
- метрика для указанного модуля; type PodMetrics
Вы можете просмотреть доступные метрики, как показано ниже, например,
kubectl get --raw https://KUBE-APISERVER-IP:6443 /apis/metrics.k8s.io/v1beta1
{"kind":"APIResourceList","apiVersion":"v1","groupVersion":"metrics.k8s.io/v1beta1","resources":[{"name":"nodes","singularName":"","namespaced":false,"kind":"NodeMetrics","verbs":["get","list"]},{"name":"pods","singularName":"","namespaced":true,"kind":"PodMetrics","verbs":["get","list"]}]}
kubectl get --raw https://KUBE-APISERVER-IP:6443 /apis/metrics.k8s.io/v1beta1/namespaces/default/pods
Вы также можете использовать команду kubectl top pods
, которая внутренне вызывает вышеуказанный API.
Пользовательские метрики
Они предоставляются адаптерами, разработанными поставщиками, и доступные метрики будут зависеть от адаптера. Как только вы узнаете имя метрики, вы можете использовать API для доступа к нему.
Вы можете просмотреть доступные метрики, как показано ниже, и получить имя метрики.
kubectl get --raw https://KUBE-APISERVER-IP:6443 /apis/custom.metrics.k8s.io/v1beta1
Внешние метрики
Они предоставляются адаптерами, разработанными поставщиками, и доступные метрики будут зависеть от адаптера. Как только вы знаете имя метрики, вы можете использовать API для доступа к нему.
Вы можете просмотреть доступные метрики, как показано ниже, и получить имя метрики.
kubectl get --raw https://KUBE-APISERVER-IP:6443 /apis/external.metrics.k8s.io/v1beta1
Редактировать:
У вас уже есть адаптер Prometheus, но если метрику c не предоставляют в качестве пользовательских метрик для использования HPA, вам необходимо предоставить необходимые метрики. См. Это руководство для этого.