from kubernetes import client, config
def main():
# Configs can be set in Configuration class directly or using helper
# utility. If no argument provided, the config will be loaded from
# default location.
config.load_kube_config()
v1 = client.CoreV1Api()
print("Listing pods with their IPs:")
ret = v1.list_pod_for_all_namespaces(watch=False)
for i in ret.items:
print("%s\t%s\t%s" %
(i.status.pod_ip, i.metadata.namespace, i.metadata.name))
if __name__ == '__main__':
main()
from kubernetes import client
custom_api = client.CustomObjectsApi(client.ApiClient())
response = custom_api.list_cluster_custom_object("metrics.k8s.io", "v1beta1", "nodes")
for node in response['items'];
print(f"node {node['metadata']['name']} has available memory of {node['usage']['memory']}")
3条答案
按热度按时间f8rj6qna1#
开始使用
kubernetes-client包含您需要的代码片段:
方法
要获取单元度量,请尝试以下beta类:V2beta2PodsMetricStatus
指标
根据
k8s
documentation,您的指标应该是:kube_pod_container_resource_limits_memory_bytes
个kube_pod_container_resource_requests_memory_bytes
irlmq6kh2#
经过长时间的调查和GitHub上的kubernetes-client仓库中的一些好建议(在
kubectl
命令中使用--v=10
标志),我找到了两个资源,可以从中获取我感兴趣的CPU/内存消耗指标:我找不到任何代码示例如何用
kubernetes-client
库做同样的事情,这就是为什么我会构建自己的 Package 器。8qgya5xd3#
迟来的答案,但因为这让我很沮丧,我希望有一个适当的答案,这个问题,所以我不必去挖掘它,我现在写一个,使它更容易对下一个可怜的树液。
以下是获取节点内存的方法:
如果您在尝试运行此命令时得到未经授权的响应,则需要更新您的clusterRole和clusterRoleBinding以授权此命令。