我正在使用指标服务器来获取 Kubernetes 集群的使用情况。但为了从主机外部使用它,我需要使用“kubectl proxy”。但我不想这样做,因为它不打算在后台运行。我希望它作为服务持续运行
我怎样才能实现这些
预期输出 curl clusterip:8001/apis/metrics.k8s.io/v1beta1/nodes
{
"kind": "NodeMetricsList",
"apiVersion": "metrics.k8s.io/v1beta1",
"metadata": {
"selfLink": "/apis/metrics.k8s.io/v1beta1/nodes"
},
"items": [
{
"metadata": {
"name": "manhattan-master",
"selfLink": "/apis/metrics.k8s.io/v1beta1/nodes/manhattan-master",
"creationTimestamp": "2019-11-15T04:26:47Z"
},
"timestamp": "2019-11-15T04:26:33Z",
"window": "30s",
"usage": {
"cpu": "222998424n",
"memory": "3580660Ki"
}
}
]
Run Code Online (Sandbox Code Playgroud)
我尝试使用LoadBalancig 服务 metrics-server-service.yaml
apiVersion: v1
kind: Service
metadata:
name: metrics-server
namespace: kube-system
labels:
kubernetes.io/name: "Metrics-server"
kubernetes.io/cluster-service: "true"
spec:
selector:
k8s-app: metrics-server
ports:
- port: 443
protocol: TCP
targetPort: main-port
externalTrafficPolicy: Local
type: LoadBalancer
Run Code Online (Sandbox Code Playgroud)
kubectl …
我想计算 Kubernetes 中单个 Pod 的 CPU 和内存资源利用率百分比。为此,我使用指标服务器 API
kubectl top pods --all-namespaces
kube-system coredns-5644d7b6d9-9whxx 2m 6Mi
kube-system coredns-5644d7b6d9-hzgjc 2m 7Mi
kube-system etcd-manhattan-master 10m 53Mi
kube-system kube-apiserver-manhattan-master 23m 257Mi
Run Code Online (Sandbox Code Playgroud)
但我想要单个 Pod 的利用率百分比 CPU % 和 MEM%
从 top 命令的输出中,不清楚它消耗了多少 cpu 和内存?
我不想使用 Prometheus 运算符,我看到了一个公式
sum (rate (container_cpu_usage_seconds_total{image!=""}[1m])) by (pod_name)
Run Code Online (Sandbox Code Playgroud)
我可以使用MetricsServer API来计算吗?
我想这样计算
CPU% = ((2+2+10+23)/ CPU 总核数)*100
MEM% = ((6+7+53+257)/可分配内存)* 100
请告诉我我是对还是错。因为我在 Kubernetes 文档中没有看到任何计算 pod 利用率的标准公式