如获取monitor命名空间下名为所有pod的start_time_seconds metric kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1...访问object为namespace的方式如下如下 kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/{namespace-name...访问node的方式如下 kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/nodes/{node-name}/{metric-name......}" ---- DEBUG: 使用如下方式查看注册的APIService发现的所有rules kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1...为空,则需要校验deploy中的Prometheus url是否正确,是否有权限等 通过如下方式查看完整的请求过程(--v=8) kubectl get --raw “/apis/custom.metrics.k8s.io
查看nodes指标 kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes" | jq ....查看pod指标 kubectl get --raw "/apis/metrics.k8s.io/v1beta1/pods" | jq ..../custom-metrics-api 列出由prometheus提供的自定义指标: kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1" |...获取monitoring命名空间中所有pod的FS信息: kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/monitoring...普罗米修斯适配器删除_total后缀标记度量作为一个计数器度量 从自定义度量API获取每秒的总请求数: kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1
podinfo应用暴露了一个名为http_requests_total的自定义metric。...从自定义metrics API中获取每秒请求总数: kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/default/pods...查询结果: { "kind": "MetricValueList", "apiVersion": "custom.metrics.k8s.io/v1beta1", "metadata":...{ "selfLink": "/apis/custom.metrics.k8s.io/v1beta1/namespaces/default/pods/%2A/http_requests" }
/serving.crt --from-file=serving.key -n xxxx [root@k8s-master pki]# kubectl get secret -n xxxx|egrep...测试下: kubectl get pod -n xxxx|egrep custom 查看有没有证书。...kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1" 查看有没有resource。...kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/default/pods/*/http_requests?...selector=app%3Dsample-app" 查看有没有自己的定义。 4.custom使用的adapter确保和之前安装prometheus使用的版本保持一致。
,这些指标都是通过 APIServer 暴露的,而且 HPA 资源对象也可以很轻易的直接使用。...的资源类型关联起来,最常用的就是 pod 和 namespace。...get --raw="/apis/custom.metrics.k8s.io/v1beta1" | jq { "kind": "APIResourceList", "apiVersion":...现在,让我们检查该指标的当前值: [root@prometheus]# kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces.../v1beta1", "metadata": { "selfLink": "/apis/custom.metrics.k8s.io/v1beta1/namespaces/default/pods
,我们就可以获取到该 Pod 的资源数据,这些数据其实是来自于 kubelet 的 SummaryAPI 采集而来的。...9m $ kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes" {"kind":"NodeMetricsList","apiVersion...raw /apis/custom.metrics.k8s.io/v1beta1 等一小会儿,安装完成后,可以使用下面的命令来检测是否生效了: $ kubectl get pods -n kube-mon...get --raw="/apis/custom.metrics.k8s.io/v1beta1" | jq { "kind": "APIResourceList", "apiVersion":...现在,让我们检查该指标的当前值: $ kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/default/pods/*/nginx_vts_server_requests_per_second
因为警告来自服务器,在客户端被拦截,所以它适用于所有的kubectl命令,包括像kubectl apply这样的高级命令,和像kubectl get --raw这样的低级命令: ?...这是一个使用kubectl、prom2json和jq的示例查询,用于确定API服务器的当前实例请求了哪些弃用的API: kubectl get --raw /metrics | prom2json |..." } 这显示了弃用的extensions/v1beta1 Ingress和rbac.authorization.k8s.io/v1beta1 ClusterRole API在此服务器上被请求,将在v1.22...我们可以将这些信息与apiserver_request_total指标连接起来,以获得关于向这些API发出的请求的更多细节: kubectl get --raw /metrics | prom2json...使用此选项调用时,kubectl将从服务器接收到的任何警告视为错误,并以非零退出代码退出: ? 这可以在CI作业中用于将清单应用到当前服务器,并且需要使用零退出代码传递,以表示CI作业成功。
访问到具体node的资源监控数据 [root@node-1 ~]# curl http://127.0.0.1:8001/apis/metrics.k8s.io/v1beta1/nodes/node-2...-raw的方式访问接口,如调用node-3的数据 [root@node-1 ~]# kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes/node-...get --raw /apis/metrics.k8s.io/v1beta1/nodes 获取所有node的数据 kubectl get --raw /apis/metrics.k8s.io/v1beta1.../nodes/ 获取特定node数据 kubectl get --raw /apis/metrics.k8s.io/v1beta1/pods 获取所有pod的数据 kubectl...get --raw /apis/metrics.k8s.io/v1beta1/namespaces/default/pods/haproxy-ingress-demo-5d487d4fc-sr8tm
当你访问 apis/metrics.k8s.io/v1beta1 的时候,实际上访问到的是一个叫作 kube-aggregator 的代理。...测试 $ kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes $ kubectl top node $ kubectl get apiservice...但如果想根据自定义指标:如请求qps/5xx错误数来实现HPA,就需要使用自定义指标了,目前比较成熟的实现是 Prometheus Custom Metrics。...get pod -n ops 确保适配器注册到APIServer: $ kubectl get apiservices |grep custom $ kubectl get --raw "/apis...get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/default/pods/*/http_requests_per_second" 开始压测
但是这里的问题是临时数据缓存的资源预估和预留。由于在数据生产消费之前,精确的数据量预估是比较难满足,过高的预估会导致资源预留浪费,过低的预估会导致数据写入失败可能性增高。...检查自定义指标: $ kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1" | jq { "kind": "APIResourceList"...kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/default/datasets.data.fluid.io/*/capacity_used_rate..." | jq { "kind": "MetricValueList", "apiVersion": "custom.metrics.k8s.io/v1beta1", "metadata":...{ "selfLink": "/apis/custom.metrics.k8s.io/v1beta1/namespaces/default/datasets.data.fluid.io/%2A/
我使用的是Kuard. root@ubuk8s-c3-vm01:/# kubectl get ingress -n routing-ns1 NAME CLASS HOSTS...作为成员. root@ubuk8s-c3-vm01:/# kubectl get svc -n routing-ns1 NAME TYPE CLUSTER-IP...确保Prometheus Adaptor 已经将该自定义度量值暴露了在 custom.metrics.k8s.io/v1beta1中, 使用kubectl get --raw来验证....Grafana中可以在UI中设置本地时区, 可以解决现实问题. kubectl get --raw="/apis/custom.metrics.k8s.io/v1beta1/namespaces/routing-ns1.../v1beta1", "metadata": { "selfLink": "/apis/custom.metrics.k8s.io/v1beta1/namespaces/routing-ns1
从 v1.8 开始,资源使用情况的度量(如容器的 CPU 和内存使用)可以通过 Metrics API 获取。...用户要注册API,必需向系统中添加一个APIService对象,用来声明API的URL路径以及处理请求的后端APIService。此后,聚合层会将发往那个路径的所有请求(e.g..../v1beta1/pods http://127.0.0.1:8001/apis/metrics.k8s.io/v1beta1/namespace//pods/ 也可以直接通过 kubectl 命令来访问这些...API,比如: kubectl get –raw apis/metrics.k8s.io/v1beta1/nodes kubectl get –raw apis/metrics.k8s.io/v1beta1.../pods kubectl get –raw apis/metrics.k8s.io/v1beta1/nodes/ kubectl get –raw apis/metrics.k8s.io/v1beta1
的clusterrolebinding,使得prom:prom-cm-adapter有权限列出集群的资源信息 创建Prometheus和adapter的deploment,并创建名为prometheus...的clusterip service,暴露端口为--tcp=443:443,该端口为访问apiserver的端口 创建APIServer,注册API到custom.metrics.k8s.io/v1beta1...和group 使用命令检查:kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1 创建一个产生custom metrics的APP service,...heapster,请求收集各prometheus的数据,并通过REST发送给HPA controller。...adapter请求并缓存更新prometheus的metrics,后续上报给kubernetes。
(核心指标),提供 API metrics.k8s.io,仅可以查看 node、pod 当前 CPU/Memory/Storage 的资源使用情况,也支持通过 Metrics API 的形式获取,以此数据提供给...一、开启 API Aggregation 由于 metrics-server 需要暴露 API,但 k8s 的 API 要统一管理,如何将 apiserver 的请求转发给 metrics-server...apply -f . metrics-server 的资源占用量会随着集群中的 Pod 数量的不断增长而不断上升,因此需要 addon-resizer 垂直扩缩 metrics-server。...$ kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes $ kubectl get --raw /apis/metrics.k8s.io/v1beta1.../pods $ kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes/ $ kubectl get --raw /apis/metrics.k8s.io
例如,以下命令输出相同的结果: kubectl get pod pod1 kubectl get pods pod1 kubectl get po pod1 NAME:指定资源的名称。...completion bash) MacOS zsh source kubectl completion zsh) 2.3 自定义输出列 比如,查询所有 Pod 的资源请求和限制:...也可以用来直接访问原始 URI,比如要访问 Metrics API 可以: kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes kubectl get...--raw /apis/metrics.k8s.io/v1beta1/pods kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes/ kubectl...get --raw /apis/metrics.k8s.io/v1beta1/namespace//pods/ 3 kubectl 插件 kubectl 插件提供了一种扩展 kubectl
工作中即将开始写operator,先提前学习一下相关的知识 目前我们的kubernetes集群版本为1.15.0,故参考文档为官方文档《Extend the Kubernetes API with...get crd | grep crontabs crontabs.stable.example.com 2020-01-08T07:49:53Z 创建自定义对象 根据上文定义的...apply -f my-crontab.yaml # kubectl get crontab NAME AGE my-new-cron-object 28s 删除自定义对象...删除CustomResourceDefinition时,服务器将卸载RESTful API端点并删除其中存储的所有自定义对象 # kubectl delete -f resourcedefinition.yaml...# kubectl get crontabs Error from server (NotFound): Unable to list "stable.example.com/v1, Resource
(图片来自 OpenShift Blog) 在实际使用中,通常通过 kubectl 来访问 apiserver,也可以通过 Kubernetes 各个语言的 client 库来访问 apiserver...在使用 kubectl 时,打开调试日志也可以看到每个 API 调用的格式,比如: $ kubectl --v=8 get pods 可通过 kubectl api-versions 和...2.3 请求处理过程 以 /apis/batch/v2alpha1/jobs 为例,GET 请求的处理过程如下图所示: POST 请求的处理过程为: (图片来自 OpenShift...kubectl get --raw /api/v1/namespaces kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes kubectl get...--raw /apis/metrics.k8s.io/v1beta1/pods 2.4.2 kubectl proxy方式 Kubectl Proxy代理程序既能作为API Server
CRUD 操作 如何使用 kubectl 的 raw 模式直接访问 Kubernetes API 如何查看 kubectl 命令发送了哪些 API 请求(如 apply) Kubernetes API...从错误消息中可以清楚地看出,该请求已通过身份验证User "system:anonymous",显然,该用户未授权列出 deployment 资源。...模式调用 Kubernetes API 我最近学到的另一个很酷的技巧是kubectl命令支持的raw 模式: # Sends HTTP GET request $ kubectl get --raw.../pods kubectl 是一个非常先进的工具,即使是简单的命令,比如kubectl get背后也有大量的代码。...例如,您可以通过这种方式了解到该kubectl scale deployment命令是通过对子资源的PATCH请求实现的/deployments//scale: $ kubectl scale
KubeFedCluster 自定义资源存储到 kube-federation-system 命名空间中: $ kubectl -n kube-federation-system get kubefedclusters...管理资源,因此,当 enable 执行之后可以看到 Host Cluster 中新增了一种名为 federatedvirtualservices 的 CRD: $ kubectl get crd | grep...不过要部署资源之前,需要先创建 federatednamespaces ,多集群的资源只会部署到被 kubefed 管理的 namespace 中: $ kubectl get federatednamespaces...NAME AGE default 3d21h 这里尝试创建一个 federatedvirtualservices 类型的资源: $ kubectl get federatedvirtualservices...,收到事件后会将该记录应用到 DNS 服务器上,如果成员集群的内部 DNS 服务器使用该外部 DNS 服务器作为上游服务器,那么成员集群可以直接访问对于域名就可以实现跨集群访问。