k8s api文档 调用heapster metrics
restful api访问k8s集群,增删改查信息,做界面二次开 发。
需要预先创建访问权限的配置。
官网api文档
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.9/
版本更新到v1.10以后 上面这个链接就找不到了 要把v1.9改成v1.10才能访问。
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/
下面罗列部分api
curl -u admin:admin "https://localhost:6443/api/v1" -k
curl -u admin:admin "https://localhost:6443/api/v1/pods" -kcurl -u admin:admin "https://localhost:6443/api/v1/namespaces/{namespace}/pods" -k
curl -u admin:admin "https://localhost:6443/api/v1/namespaces/default/pods" -k
获取节点信息
curl -u admin:admin "https://localhost:6443/api/v1/nodes/{nodename}" -k
curl -u admin:admin "https://localhost:6443/api/v1/nodes/tensorflow1" -k..."status": {"capacity": {"cpu": "4","memory": "7970316Ki","pods": "110"},"allocatable": {"cpu": "4","memory": "7867916Ki","pods": "110"},
...
获取namespace信息
curl -u admin:admin "https://localhost:6443/api/v1/namespaces/{namespace}" -k
curl -u admin:admin "https://localhost:6443/api/v1/namespaces/default" -k
获得quota信息
curl -u admin:admin "https://localhost:6443/api/v1/namespaces/{namespace}/resourcequotas/" -k
curl -u admin:admin "https://localhost:6443/api/v1/namespaces/default/resourcequotas/" -k
实践
k8s_master_ip:192.168.1.138
username 不同用户不同
password 不同用户不同
namespace 不同用户不同
1.查看容器
curl -u {username}:{password} "https://{k8s_master_ip}:6443/api/v1/namespaces/{namespace}/pods/" -k
curl -u admin:admin "https://192.168.1.138:6443/api/v1/namespaces/default/pods/" -k # > pods.txt 输出到 \\192.168.1.138\hadoop\info\pods.json了
看起来像是把所有的pod都拿出来了,包括活的和死的。
看了一下信息很多不过没有资源使用信息。
"phase": "Running"
这个是正在运行的pod
"phase": "Failed"
"reason":"Evicted"
这种是删除了的,状态是failed 原因是被驱逐
增加continue参数取出正在运行的容器
curl -u {username}:{password} "https://{k8s_master_ip}:6443/api/v1/namespaces/{namespace}/pods?continue" -k
curl -u admin:admin "https://192.168.1.138:6443/api/v1/namespaces/default/pods?continue" -k
2.查看资源总览resourcequotas
curl -u {username}:{password} "https://{k8s_master_ip}:6443/api/v1/namespaces/{namespace}/resourcequotas/" -k
[root@tensorflow1 info]# curl -u admin:admin "https://localhost:6443/api/v1/namespaces/default/resourcequotas/" -k
...
"status": {"hard": {"limits.cpu": "2","limits.memory": "6Gi","pods": "20","requests.cpu": "1","requests.memory": "1Gi"},"used": {"limits.cpu": "400m","limits.memory": "1Gi","pods": "2","requests.cpu": "200m","requests.memory": "512Mi"}
}
...
hard是限额 used是当前申请的限额
limits 和 requests 的区别是 limits是上限,不能突破,但不保证能给。 requests是下限,保证能给。 举例说明:一个容器 requests.memory 512Mi,limits.memory 1Gi。宿主机内存使用量高时,一定会留512Mi内存给这个容器,不一定能拿到1Gi内存。宿主机内存使用量低时,容器不能突破1Gi内存。
Gi 和 G 的区别是 Gi是1024进制,G是1000进制,M Mi也是同理。就像一个U盘8G但实际能使用的是7.45G(其实这里单位就是Gi)
pods是指容器,单位个
cpu单位 m指千分之一,200m即0.2个cpu。这是绝对值,不是相对值。比如0.1CPU不管是在单核或者多核机器上都是一样的,都严格等于0.1CPU core
实时数据
官方文档
https://kubernetes.io/docs/tasks/debug-application-cluster/core-metrics-pipeline/
https://github.com/kubernetes/metrics
https://github.com/kubernetes-incubator/metrics-server
下载 metrics-server 压缩包文件
下载 googlecontainer/metrics-server-amd64:v0.2.0
cd metrics-server-0.2.1/deploy
修改 metrics-server-deployment.yaml 文件 image 和 imagePullPolicy: IfNotPresent
kubectl create -f .
获取节点信息
curl -u {username}:{password} "https://{k8s_master_ip}:6443/apis/metrics.k8s.io/v1beta1/nodes" -k
curl -u admin:admin "https://192.168.1.138:6443/apis/metrics.k8s.io/v1beta1/nodes" -k{"kind": "NodeMetricsList","apiVersion": "metrics.k8s.io/v1beta1","metadata": {"selfLink": "/apis/metrics.k8s.io/v1beta1/nodes"},"items": [
...{"metadata": {"name": "tensorflow1","selfLink": "/apis/metrics.k8s.io/v1beta1/nodes/tensorflow1","creationTimestamp": "2018-04-09T08:44:17Z"},"timestamp": "2018-04-09T08:44:00Z","window": "1m0s","usage": {"cpu": "265m","memory": "3448228Ki"}}
...]
}
获取pod信息
curl -u {username}:{password} "https://{k8s_master_ip}:6443/apis/metrics.k8s.io/v1beta1/namespaces/{namespace}/pods" -k
curl -u admin:admin "https://192.168.1.138:6443/apis/metrics.k8s.io/v1beta1/namespaces/default/pods" -k{"kind": "PodMetricsList","apiVersion": "metrics.k8s.io/v1beta1","metadata": {"selfLink": "/apis/metrics.k8s.io/v1beta1/namespaces/default/pods"},"items": [
...{"metadata": {"name": "tensorflow-worker-rc-998wf","namespace": "default","selfLink": "/apis/metrics.k8s.io/v1beta1/namespaces/default/pods/tensorflow-worker-rc-998wf","creationTimestamp": "2018-04-09T08:52:38Z"},"timestamp": "2018-04-09T08:52:00Z","window": "1m0s","containers": [{"name": "worker","usage": {"cpu": "0","memory": "39964Ki"}}]}
...]
}
获取namespace信息
没找到url,就把上面获取pod的使用量全加起来就是namespace的使用量了
弃用的数据获取
参考 https://jimmysong.io/posts/using-heapster-to-get-object-metrics/
官方api文档 https://github.com/kubernetes/heapster/blob/master/docs/model.md 弃用了
弃用的api取值 https://blog.csdn.net/mofiu/article/details/77126848
获取heapster url
[root@tensorflow1 influxdb]kubectl cluster-info
Kubernetes master is running at https://192.168.1.138:6443
Heapster is running at https://192.168.1.138:6443/api/v1/namespaces/kube-system/services/heapster/proxy
KubeDNS is running at https://192.168.1.138:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
monitoring-grafana is running at https://192.168.1.138:6443/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
monitoring-influxdb is running at https://192.168.1.138:6443/api/v1/namespaces/kube-system/services/monitoring-influxdb/proxycurl -u admin:admin "https://192.168.1.138:6443/api/v1/namespaces/kube-system/services/heapster/proxy/api/v1/model/namespaces/" -k
curl -u admin:admin "https://192.168.1.138:6443/api/v1/namespaces/kube-system/services/heapster/proxy/api/v1/model/namespaces/default/metrics" -k
["memory/request","memory/limit","cpu/usage_rate","memory/usage","cpu/request","cpu/limit"
]
[root@tensorflow1 influxdb]# curl -u admin:admin "https://192.168.1.138:6443/api/v1/namespaces/kube-system/services/heapster/proxy/api/v1/model/namespaces/default/metrics/memory/usage" -k
{"metrics": [...{"timestamp": "2018-04-09T07:45:00Z","value": 81121280},{"timestamp": "2018-04-09T07:46:00Z","value": 81121280}...],"latestTimestamp": "2018-04-09T07:46:00Z"
}
本文转自CSDN-k8s api文档 调用heapster metrics
k8s api文档 调用heapster metrics相关推荐
- python api调用 验证码_Python语言调用创蓝253短信验证码API文档
本文主要向大家介绍了Python语言调用创蓝253短信验证码API文档,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. #!/usr/local/bin/python #-*- c ...
- 先写API文档还是先写代码?你需要这款神器Apifox!
代码未动,文档先行 其实大家都知道 API 文档先行的重要性,但是在实践过程中往往会遇到很多困难. 程序员最讨厌的两件事:1. 写文档,2. 别人不写文档.大多数开发人员不愿意写 API 文档的原因是 ...
- 干掉 Postman?测试接口直接生成API文档,这个文档工具真香!
欢迎关注方志朋的博客,回复"666"获面试宝典 实不相瞒我的收藏夹里躺着很多优质的开源项目,我有个爱好平时遇到感兴趣的开源项目都会记录下来,然后有时间在慢慢研究.前几天刚给同事分享 ...
- 还在发愁写API文档?推荐一款阿里腾讯都在用的API管理神器!
欢迎关注方志朋的博客,回复"666"获面试宝典 前言 ❝ 程序员最讨厌的两件事:1. 写文档,2. 别人不写文档.大多数开发人员不愿意写 API 文档的原因:写文档短期收益远低于付 ...
- 很安逸的离线API文档查询工具Dash和Zeal
大家开发的时候难免会查询一些文档,看一下API的调用方法等,所以会不同的语言去某一个地方去找,确实很麻烦,今天给大家安逸两款软件,肯定会让你爱不释手! Dash for macOS 官方地址:http ...
- 干掉 Postman?测试接口直接生成API文档,这工具真香!
前几天粉丝群有小伙伴问,有啥好用的API文档工具推荐,无意间发现了一款工具,这里马不停蹄的来给大家分享一下. ShowDoc一个非常适合团队的在线API文档工具,也支持用docker自建文档服务,不过 ...
- 干掉 Postman?测试接口直接生成API文档,这个工具我爱了
前几天粉丝群有小伙伴问,有啥好用的API文档工具推荐,无意间发现了一款工具,这里马不停蹄的来给大家分享一下. ShowDoc一个非常适合团队的在线API文档工具,也支持用docker自建文档服务,不过 ...
- 使用Android Studio的时候如何查看开发文档,API文档,doc文档,SDK文档
有的时候,我们在Android开发中需要查看需要的一些类或包里面有什么方法,返回值,调用关系和继承关系等等.这个时候我们就可以使用SDK软件开发工具中的其中之一--API文档,来查一下. 那么,下面就 ...
- 利用Wireshark和OSS的API文档简单实现上传和下载
背景及目的 由于各个开发者使用的开发语言可能在官方SDK找不到相应的语言版本,就必须自主开发SDK. 本文根据wireshark和API文档,来简单实现上传和下载的请求,给需要自主开发的开发者提供一个 ...
- layer.js 弹窗组件API文档
基础参数 type title content skin area offset icon btn closeBtn shade shadeClose time id shift maxmin fix ...
最新文章
- 2019 课程设计个人报告
- Java 程序员必须了解的 7 个性能指标
- 算法训练营 重编码_编码训练营后如何找到工作
- 学习《css世界》笔记之loading三点动画效果
- Django基本概念、安装、配置到实现框架,Xmind学习笔记
- 技术改变生活 浅谈阿里云混合云的探索与实践
- 3小时解决头疼的年终报表!
- SQL将金额转换为汉子
- 把区块链作为核心技术自主创新重要突破口:华为云可以做什么?【华为云分享】
- python创建和控制的实体称为_Python eds包_程序模块 - PyPI - Python中文网
- 你不是颠覆 IoT,就是被 IoT 颠覆!
- 摩托罗拉MT788刷机
- c判断数组是否为空_剑指offer编程题 1.二维数组中的查找
- csv在python中的意思,在python中解析csv
- 教师计算机培训心得体会范文,教师计算机教育培训学习心得体会
- Jeff Dean:谷歌大脑背后的“大脑” | AI名人堂
- 基于netty实现gps jtt808协议接入
- [Maven] 跨项目调用内容
- Linux下基于epoll+线程池高并发服务器实现研究
- 前沿 | 复活逝者?他在用聊天机器人复制一个自己