![](/img/trans.png)
[英]How to use the kubernetes-client for executing "kubectl apply"
[英]how to use kubectl top node in kubernetes python?
关于空间,我意识到我可以将根路径“/”安装到容器中并使用这段代码来获取我的统计信息:
import shutil
total, used, free = shutil.disk_usage("/")
print("Total: %d GiB" % (total // (2**30)))
print("Used: %d GiB" % (used // (2**30)))
print("Free: %d GiB" % (free // (2**30)))
不过,仍在寻找一种通过 Kubernetes 本身来实现的方法。
我正在构建一个服务,它的 function 的一部分是监视我的 kubernetes 集群的系统资源(不是特定的 pod - 节点运行的整个机器)我意识到kubectl top node
是获取该信息的好方法(不包括贮存)。
有没有办法使用 kubernetes python package 获取此信息?
我试图在package 文档中找到解决方案,并意识到该操作不存在。 (也许用不同的名字?我找不到它)
在 Github 上也发现了这个问题,它部分解决了我的问题,但我仍在寻找更简单的东西。
My question: How can I check for system resources like Memory, storage, and CPU usage for my kubernetes node through the Kubernetes Python package?
通过 Metrics API 可以在 Kubernetes 中获得资源使用指标,例如 pod 或节点 CPU 和 memory 使用情况。
您可以使用kubectl get --raw
命令访问Metrics API ,例如:
kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes
更多示例可以在Metrics API 文档中找到。
Using Kubernetes Python Client you should be able to check memory and cpu usage of Kubernetes nodes, just like with the kubectl top nodes
command:
注意: Memory 以kilobytes
为单位,但可以轻松转换为megabytes
。
#!/usr/bin/python
# Script name: usage_info.py
from kubernetes import client, config
config.load_kube_config()
api = client.CustomObjectsApi()
k8s_nodes = api.list_cluster_custom_object("metrics.k8s.io", "v1beta1", "nodes")
for stats in k8s_nodes['items']:
print("Node Name: %s\tCPU: %s\tMemory: %s" % (stats['metadata']['name'], stats['usage']['cpu'], stats['usage']['memory']))
和样品 output:
$ ./usage_info.py
Node Name: node01 CPU: 82845225n Memory: 707408Ki
Node Name: node02 CPU: 99717207n Memory: 613892Ki
Node Name: node03 CPU: 74841362n Memory: 625316Ki
在存储使用方面,我认为应该以不同的方式检查它,因为此信息在/apis/metrics.k8s.io/v1beta1/nodes
端点上不可用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.