Kubernetes 使用curl检索自定义`custom.metrics.k8s.io`值
我可以列出所有可用的Kubernetes 使用curl检索自定义`custom.metrics.k8s.io`值,kubernetes,Kubernetes,我可以列出所有可用的custom.metrics,但我不知道如何查询单个值。例如,我尝试过: curl http://localhost:8001/apis/custom.metrics.k8s.io/v1beta1/ | jq . { "kind": "APIResourceList", "apiVersion": "v1", "groupVersion": "custom.metrics.k8s.io/v1beta1", "resources": [ {
custom.metrics
,但我不知道如何查询单个值。例如,我尝试过:
curl http://localhost:8001/apis/custom.metrics.k8s.io/v1beta1/ | jq .
{
"kind": "APIResourceList",
"apiVersion": "v1",
"groupVersion": "custom.metrics.k8s.io/v1beta1",
"resources": [
{
"name": "deployments.apps/aws_sqs_approximate_number_of_messages_visible_average",
"singularName": "",
"namespaced": false,
"kind": "MetricValueList",
"verbs": [
"get"
]
}
]
}
但如果我尝试这样做:
curl http://localhost:8001/apis/custom.metrics.k8s.io/v1beta1/deployments.apps/aws_sqs_approximate_number_of_messages_visible_average | jq .
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "the server could not find the requested resource",
"reason": "NotFound",
"details": {
},
"code": 404
}
我有一个404。我已经看到了如何获取名称空间度量,但我的度量没有名称空间?有关于如何使用此API的定义吗?因为我使用的是
DirectXMan12/k8s prometheus适配器
,有几件事需要知道:
- 这是我真正的问题
kubectl proxy
打开kubernetes API的代理curlhttp://localhost:8001/apis/custom.metrics.k8s.io/v1beta1/
列出所有可用的自定义指标 {
"name": "deployments.extensions/kube_deployment_status_replicas_available",
"singularName": "",
"namespaced": true,
"kind": "MetricValueList",
"verbs": [
"get"
]
}
我们知道它是从namespaced:true
命名的,在名称空间下面,我们可以通过部署从name
字段中进行选择
因此,我们将按如下方式构建查询:
curl http://localhost:8001/apis/custom.metrics.k8s.io/v1beta1/namespace/$NAMESPACE/deployments.extensions/$DEPLOYMENT/kube_deployment_status_replicas_available
至少我认为它应该是这样工作的,尽管如果您在没有部署的情况下执行相同的查询。扩展将显示名称空间的值:
curl http://localhost:8001/apis/custom.metrics.k8s.io/v1beta1/namespace/$NAMESPACE/kube_deployment_status_replicas_available
这可能是由于prometheus中查询的执行方式。与资源度量一样,自定义度量也绑定到Kubernetes对象。 URL中缺少的是希望度量与之相关的资源。 例如,与自定义度量相关的Pod,但部署也是如此 尝试根据您的需要调整此url:
kubectl get --raw \
'/apis/custom.metrics.k8s.io/v1beta1/namespaces/default/pod/podinfo-67c9fd95d-fqk4g/http_requests_per_second' \
| jq .
以下是我们在2019年FOSDEM大会上关于普罗米修斯适配器的演讲幻灯片:
一旦视频也可用,我将更新此答案。迫不及待地想看视频!我相信这真的会有帮助。