当前位置: 首页 > 面试题库 >

使用Go客户端获取Kubernetes中Pod的当前资源使用情况

乐寒
2023-03-14
问题内容

kubernetes go客户端有很多方法,我找不到如何获得特定(或所有Pod)的当前CPU和RAM使用率的方法。

有人可以告诉我我需要调用什么方法才能获得Pod和节点的当前用法?

我的NodeList:

nodes, err := clientset.CoreV1().Nodes().List(metav1.ListOptions{})

Kubernetes Go客户端:https :
//github.com/kubernetes/client-go

指标包:https
:
//github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/metrics

据我所知,指标服务器实现了Kubernetes指标包,以便从Pod和节点中获取资源使用情况,但是我不知道它们在哪里以及如何实现:https://github.com/kubernetes-incubator / metrics-
server


问题答案:

正确的是,go-
client不支持度量标准类型,但是在度量标准数据包中有一个预生成的客户端,可用于获取度量标准对象并将其立即分配给适当的结构。您唯一需要做的就是生成一个配置并将其传递给指标客户端。因此,一个简单的指标客户端看起来像这样:

package main


import (
    "k8s.io/client-go/tools/clientcmd"
    metrics "k8s.io/metrics/pkg/client/clientset/versioned"
    metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)



func main() {
    var kubeconfig, master string //empty, assuming inClusterConfig
    config, err := clientcmd.BuildConfigFromFlags(master, kubeconfig)
    if err != nil{
        panic(err)
    }

    mc, err := metrics.NewForConfig(config)
    if err != nil {
        panic(err)
    }

    mc.MetricsV1beta1().NodeMetricses().Get("your node name", metav1.GetOptions{})
    mc.MetricsV1beta1().NodeMetricses().List(metav1.ListOptions{})
    mc.MetricsV1beta1().PodMetricses(metav1.NamespaceAll).List(metav1.ListOptions{})
    mc.MetricsV1beta1().PodMetricses(metav1.NamespaceAll).Get("your pod name", metav1.GetOptions{})
}

度量标准客户端的上述每种方法都返回一个适当的结构(您可以在此处检查那些结构)和一个错误(如果有),您应根据自己的要求进行处理。



 类似资料:
  • 首先创建pod部署 现在吊舱已经部署好了,我现在正在读日志 从这里读取日志后,Pod创建成功,但客户端似乎找不到资源,错误为 如果我尝试从命令行获取日志,就没有问题。我认为主要问题是pods.meta.k8s.io和命令行args之间的问题

  • 我正在为Kubernetes使用fabric8 java客户端库。我无法找到对容器执行更新操作的最佳方法。基本上,我想做的是,我已经创建了一个容器映像为“nginx”的pod,现在我想更新这个映像为“nginx:1.16.1”。 我想做的是

  • 【资源使用】页面展示具体的资源使用信息,主要包括以下几个方面: 总资源查看 “总资源数”表示该次资源检测过程中,UWA所检测到的资源文件总量。点击“总资源数”,即可查看具体的资源名称、资源类型和所属的AssetBundle文件。目前,我们列出了项目的主要资源类型,您可以通过选择不同的类型来查看相应的资源文件。 上图表格中的每一行,我们均展示了资源与AssetBundle的具体从属关系。同时,您可以

  • 本文向大家介绍magento 获取当前客户,包括了magento 获取当前客户的使用技巧和注意事项,需要的朋友参考一下 示例 要么            

  • 问题内容: 我需要在Java项目中获取资源映像文件。我正在做的是: 目录结构如下: 事实是,我总是会得到该文件不存在的信息。我尝试了许多不同的方法,但无法解决问题。有什么提示吗? 问题答案: 前导斜杠表示类路径的根 斜线而不是路径中的点 你可以getResource()直接在课堂上致电。