使用 GO API 查找可用的 RAM
Find the available RAM using GO API
我正在使用 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")
但是输出不是可读的。
此代码将获取第一个集群的可用内存
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)
}
我正在使用 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")
但是输出不是可读的。
此代码将获取第一个集群的可用内存
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)
}