如何通过API获取Kubernetes资源信息(总体CPU和内存使用情况)

阿克舍奇塔尔

我已经在VIM中安装了minikube,并且拥有具有所有特权的服务帐户令牌。有没有来自kubernetes的API来获取资源使用情况(总体)。

坚果

要获取CPU和内存使用率,可以使用以下内容(取决于您喜欢的对象):

kubectl top podskubectl top nodes会告诉你

$ kubectl top pods
NAME                       CPU(cores)   MEMORY(bytes)
nginx-1-5d4f8f66d9-xmhnh   0m           1Mi

api参考可能如下所示:

$ curl http://localhost:8080/apis/metrics.k8s.io/v1beta1/pods

...
{
      "metadata": {
        "name": "nginx-1-5d4f8f66d9-xmhnh",
        "namespace": "default",
        "selfLink": "/apis/metrics.k8s.io/v1beta1/namespaces/default/pods/nginx-1-5d4f8f66d9-xmhnh",
        "creationTimestamp": "2019-07-29T11:48:13Z"
      },
      "timestamp": "2019-07-29T11:48:11Z",
      "window": "30s",
      "containers": [
        {
          "name": "nginx",
          "usage": {
            "cpu": "0",
            "memory": "1952Ki"
          }
        }
      ]
    }
...

至于API,几乎没有访问它的方法。

您可以通过运行使用代理kubectl proxy --port:8080 &

以下命令以充当反向代理的模式运行kubectl。它负责定位API服务器并进行身份验证。

有关更多详细信息,请参见kubectl代理

然后,您可以使用curl,wget或浏览器浏览API,如下所示:

curl http://localhost:8080/api/

您可以使用身份验证令牌没有代理情况下访问它

通过将身份验证令牌直接传递到API服务器,可以避免使用kubectl代理,如下所示:

使用grep/cut方法:

# Check all possible clusters, as you .KUBECONFIG may have multiple contexts:
kubectl config view -o jsonpath='{"Cluster name\tServer\n"}{range .clusters[*]}{.name}{"\t"}{.cluster.server}{"\n"}{end}'

# Select name of cluster you want to interact with from above output:
export CLUSTER_NAME="some_server_name"

# Point to the API server refering the cluster name
APISERVER=$(kubectl config view -o jsonpath="{.clusters[?(@.name==\"$CLUSTER_NAME\")].cluster.server}")

# Gets the token value
TOKEN=$(kubectl get secrets -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='default')].data.token}"|base64 -d)

# Explore the API with TOKEN
curl -X GET $APISERVER/api --header "Authorization: Bearer $TOKEN" --insecure

您还可以使用几个官方客户端库(例如GoPython)访问API 其他库可在此处查看

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过NodeJS获取/查看内存和CPU使用情况

如何通过kubernetes go-client获取pods资源使用情况?

如何获取使用 ProcessBuilder 执行的进程的内存使用情况和 CPU 时间?

如何获取特定配置单元查询的cpu,内存和IO使用情况?

如何通过API从Kubernetes中的Node检索cpu使用情况?

如何通过编程快速获取我的应用程序和系统的内存使用情况

无论如何要通过 REST API 从 vCenter 获取当前使用情况统计信息?

如何以编程方式从Java应用程序中获取内存,线程和CPU使用情况?

跟踪每个进程的CPU和内存使用情况

文件javascript的CPU和内存使用情况

监视CPU和内存使用情况的程序

获取当前的zswap内存使用情况和统计信息

在Google Cloud Compute中获取内存和Cpu使用情况

如何监视单个进程的CPU /内存使用情况?

如何在Mac上跟踪和记录CPU和内存使用情况?

如何使用Java监视计算机的CPU,内存和磁盘使用情况?

如何使用awk按进程名称分组并总结内存和cpu使用情况?

如何在Qubes OS中查看总体系统使用情况统计信息?

如何查找子进程的cpu和内存使用情况

如何在AKS中查询每个容器的CPU和内存使用情况?

负载/浸泡测试后如何生成CPU和内存使用情况图?

运行程序后如何查看其CPU和内存使用情况

如何读取由Java启动的进程的内存和cpu使用情况

如何获取通过LoadLibrary()加载的DLL的内存使用情况?

如何获取通过 symfony-process 运行的脚本的内存使用情况?

Vulkan和较旧的API的内存使用情况

如何使用JMX API获取tomcat 7的内存使用情况?

获取线程的内存使用情况

pmap和内存使用情况