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相关推荐

  1. python api调用 验证码_Python语言调用创蓝253短信验证码API文档

    本文主要向大家介绍了Python语言调用创蓝253短信验证码API文档,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. #!/usr/local/bin/python #-*- c ...

  2. 先写API文档还是先写代码?你需要这款神器Apifox!

    代码未动,文档先行 其实大家都知道 API 文档先行的重要性,但是在实践过程中往往会遇到很多困难. 程序员最讨厌的两件事:1. 写文档,2. 别人不写文档.大多数开发人员不愿意写 API 文档的原因是 ...

  3. 干掉 Postman?测试接口直接生成API文档,这个文档工具真香!

    欢迎关注方志朋的博客,回复"666"获面试宝典 实不相瞒我的收藏夹里躺着很多优质的开源项目,我有个爱好平时遇到感兴趣的开源项目都会记录下来,然后有时间在慢慢研究.前几天刚给同事分享 ...

  4. 还在发愁写API文档?推荐一款阿里腾讯都在用的API管理神器!

    欢迎关注方志朋的博客,回复"666"获面试宝典 前言 ❝ 程序员最讨厌的两件事:1. 写文档,2. 别人不写文档.大多数开发人员不愿意写 API 文档的原因:写文档短期收益远低于付 ...

  5. 很安逸的离线API文档查询工具Dash和Zeal

    大家开发的时候难免会查询一些文档,看一下API的调用方法等,所以会不同的语言去某一个地方去找,确实很麻烦,今天给大家安逸两款软件,肯定会让你爱不释手! Dash for macOS 官方地址:http ...

  6. 干掉 Postman?测试接口直接生成API文档,这工具真香!

    前几天粉丝群有小伙伴问,有啥好用的API文档工具推荐,无意间发现了一款工具,这里马不停蹄的来给大家分享一下. ShowDoc一个非常适合团队的在线API文档工具,也支持用docker自建文档服务,不过 ...

  7. 干掉 Postman?测试接口直接生成API文档,这个工具我爱了

    前几天粉丝群有小伙伴问,有啥好用的API文档工具推荐,无意间发现了一款工具,这里马不停蹄的来给大家分享一下. ShowDoc一个非常适合团队的在线API文档工具,也支持用docker自建文档服务,不过 ...

  8. 使用Android Studio的时候如何查看开发文档,API文档,doc文档,SDK文档

    有的时候,我们在Android开发中需要查看需要的一些类或包里面有什么方法,返回值,调用关系和继承关系等等.这个时候我们就可以使用SDK软件开发工具中的其中之一--API文档,来查一下. 那么,下面就 ...

  9. 利用Wireshark和OSS的API文档简单实现上传和下载

    背景及目的 由于各个开发者使用的开发语言可能在官方SDK找不到相应的语言版本,就必须自主开发SDK. 本文根据wireshark和API文档,来简单实现上传和下载的请求,给需要自主开发的开发者提供一个 ...

  10. layer.js 弹窗组件API文档

    基础参数 type title content skin area offset icon btn closeBtn shade shadeClose time id shift maxmin fix ...

最新文章

  1. 2019 课程设计个人报告
  2. Java 程序员必须了解的 7 个性能指标
  3. 算法训练营 重编码_编码训练营后如何找到工作
  4. 学习《css世界》笔记之loading三点动画效果
  5. Django基本概念、安装、配置到实现框架,Xmind学习笔记
  6. 技术改变生活 浅谈阿里云混合云的探索与实践
  7. 3小时解决头疼的年终报表!
  8. SQL将金额转换为汉子
  9. 把区块链作为核心技术自主创新重要突破口:华为云可以做什么?【华为云分享】
  10. python创建和控制的实体称为_Python eds包_程序模块 - PyPI - Python中文网
  11. 你不是颠覆 IoT,就是被 IoT 颠覆!
  12. 摩托罗拉MT788刷机
  13. c判断数组是否为空_剑指offer编程题 1.二维数组中的查找
  14. csv在python中的意思,在python中解析csv
  15. 教师计算机培训心得体会范文,教师计算机教育培训学习心得体会
  16. Jeff Dean:谷歌大脑背后的“大脑” | AI名人堂
  17. 基于netty实现gps jtt808协议接入
  18. [Maven] 跨项目调用内容
  19. Linux下基于epoll+线程池高并发服务器实现研究
  20. 前沿 | 复活逝者?他在用聊天机器人复制一个自己

热门文章

  1. mysql -数据库
  2. linux学习(3)——vim文本编辑工具
  3. Linux salt
  4. windows 子系统认识(1)
  5. Office编程-RPC服务器不可用
  6. 适应adblock plus 规则的简单正则表达式匹配
  7. Redis(RedisTemplate)运算、算法(incr、decr、increment)
  8. 编写高效优雅Java程序
  9. JavaScript不用临时变量交换两个变量的值的七种解决方案
  10. jQuery 实现点击页面其他地方隐藏菜单