Kubernetes关于资源使用情况的metrics,可以通过 Metrics API 获取到。
Kubernetes 1.11以后已经废弃heapster。
再加上HPA弹性横向扩缩容,也需要通过Metrics服务收集到的CPU、MEM等指标进行扩容和缩容操作。
这里我们基于Kubernetes1.14版本安装Metrics Server。
安装
1.仓库https://github.com/kubernetes-incubator/metrics-server
2.修改
metrics-server/deploy/1.8+/resource-reader.yaml
在rules.apiGroups.resources 增加 –namespaces
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: system:metrics-server
rules:
- apiGroups:
- ""
resources:
- pods
- nodes
- namespaces # 增加此行
- nodes/stats
verbs:
- get
- list
- watch
metrics-server/deploy/1.8+/metrics-server-deployment.yaml
---
(变更前)
containers:
- name: metrics-server
image: k8s.gcr.io/metrics-server-amd64:v0.3.2
imagePullPolicy: Always
---
(变更后)
containers:
- name: metrics-server
image: k8s.gcr.io/metrics-server-amd64:v0.3.2
command:
- /metrics-server
- --kubelet-insecure-tls
3.应用
kubectl apply -f .
获取节点使用率
kubectl top node
获取pod使用率
kubectl top pod
可能遇见的问题
1.kubectl logs -f -n kube-system metrics-server-xxx-xxx -n kube-system
unable to fetch node metrics for node "node28": no metrics known for node
在coredns里面配置映射静态,参考