使用GO API查找可用的RAM

时间:2018-03-09 11:14:01

标签: rest go kubernetes minikube

我正在使用Minikube环境,我已经使用

定义了最大内存
$] minikube config set memory 2048

现在我想使用GO中的Kubernetes API调用来获取此内存值。 我试过以下,

import (
    "k8s.io/client-go/kubernetes"
    "k8s.io/client-go/rest"
)

availableMem := kubernetes.Interface.StorageV1beta1().RESTClient().Get().Name("config")

但输出不是可读的。

1 个答案:

答案 0 :(得分:7)

此代码将获取第一个群集的可用内存

nodeList, err := f.KubeClient.CoreV1().Nodes().List(metav1.ListOptions{})

if err == nil {
   if len(nodeList.Items) > 0 {
        node := &nodeList.Items[0]
        memQuantity := node.Status.Allocatable[v1.ResourceMemory]
        totalMemAvail = int(memQuantity.Value() >> 20)
    } else {
        t.Fatal("Unable to read node list")
        return
    }
} else {
    t.Fatalf("Error while reading node list data: %v", err)
}