metrics-server
从 v1.8 开始,资源使用情况的监控可以通过 Metrics API的形式获取,具体的组件为Metrics Server,用来替换之前的heapster,heapster从1.11开始逐渐被废弃。
Metrics-Server是集群核心监控数据的聚合器,从 Kubernetes1.8 开始,它作为一个 Deployment对象默认部署在由kube-up.sh脚本创建的集群中,如果是其他部署方式需要单独安装,或者咨询对应的云厂商。
准备
添加源
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
查找
helm search repo bitnami/metrics-server
[root@localhost ~]# helm search repo metrics-server
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami/metrics-server 6.0.0 0.6.1 Metrics Server aggregates resource usage data, ...
部署
开启聚合层
vim /etc/kubernetes/manifests/kube-apiserver.yaml
添加
- --enable-aggregator-routing=true
编辑文件
cat <<EOF> my-values.yaml
image:
registry: registry.cn-shanghai.aliyuncs.com
repository: wanfei/metrics-server
tag: 0.6.1-debian-10-r34
extraArgs:
metric-resolution: 30s
kubelet-preferred-address-types: InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
kubelet-insecure-tls: false
apiService:
create: true
EOF
安装
helm install metrics-server bitnami/metrics-server \
-f my-values.yaml \
--version 5.11.4
验证
[root@localhost ~]# kubectl get pods | grep metrics-server
metrics-server-86b4c798b-p7jwc 1/1 Running 0 11m
[root@localhost ~]# kubectl top no
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
master 120m 6% 2224Mi 58%
node-1 20m 1% 1041Mi 27%
node-2 23m 1% 1045Mi 27%
[root@localhost ~]# kubectl top pod
NAME CPU(cores) MEMORY(bytes)
metrics-server-86b4c798b-p7jwc 2m 20Mi
列出指标
[root@localhost ~]# kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes" | jq .
{
"kind": "NodeMetricsList",
"apiVersion": "metrics.k8s.io/v1beta1",
"metadata": {},
"items": [
{
"metadata": {
"name": "master",
"creationTimestamp": "2022-05-17T03:50:16Z",
"labels": {
"beta.kubernetes.io/arch": "amd64",
"beta.kubernetes.io/os": "linux",
"kubernetes.io/arch": "amd64",
"kubernetes.io/hostname": "master",
"kubernetes.io/os": "linux",
"node-role.kubernetes.io/master": ""
}
},
"timestamp": "2022-05-17T03:49:47Z",
"window": "30.024s",
"usage": {
"cpu": "117877491n",
"memory": "2279004Ki"
}
},
{
"metadata": {
"name": "node-1",
"creationTimestamp": "2022-05-17T03:50:16Z",
"labels": {
"beta.kubernetes.io/arch": "amd64",
"beta.kubernetes.io/os": "linux",
"kubernetes.io/arch": "amd64",
"kubernetes.io/hostname": "node-1",
"kubernetes.io/os": "linux"
}
},
"timestamp": "2022-05-17T03:49:47Z",
"window": "30.021s",
"usage": {
"cpu": "19721978n",
"memory": "1063964Ki"
}
},
{
"metadata": {
"name": "node-2",
"creationTimestamp": "2022-05-17T03:50:16Z",
"labels": {
"beta.kubernetes.io/arch": "amd64",
"beta.kubernetes.io/os": "linux",
"kubernetes.io/arch": "amd64",
"kubernetes.io/hostname": "node-2",
"kubernetes.io/os": "linux"
}
},
"timestamp": "2022-05-17T03:49:48Z",
"window": "30.02s",
"usage": {
"cpu": "19495698n",
"memory": "1071160Ki"
}
}
]
}
卸载
helm uninstall metrics-server
Comments | NOTHING