[root@hadoop03 testpvc]# kubectl top node
error: Metrics API not available
wget https://github.com/kubernetes-sigs/metrics-server/archive/v0.3.6.tar.gz
[root@hadoop03 1.8+]# pwd
/opt/module/k8s/metrics/metrics-server-0.3.6/deploy/1.8+
[root@hadoop03 1.8+]# ll
total 28
-rw-rw-r-- 1 root root 393 Jan 12 19:33 aggregated-metrics-reader.yaml
-rw-rw-r-- 1 root root 303 Jan 12 19:33 auth-delegator.yaml
-rw-rw-r-- 1 root root 324 Jan 12 19:33 auth-reader.yaml
-rw-rw-r-- 1 root root 293 Jan 12 19:33 metrics-apiservice.yaml
-rw-rw-r-- 1 root root 1056 Jan 12 19:34 metrics-server-deployment.yaml
-rw-rw-r-- 1 root root 291 Jan 12 19:33 metrics-server-service.yaml
-rw-rw-r-- 1 root root 517 Jan 12 19:33 resource-reader.yaml
[root@hadoop03 1.8+]# sed -i 's/apiregistration\.k8s\.io\/v1beta1/apiregistration\.k8s\.io\/v1/g' *
[root@hadoop03 1.8+]# sed -i 's/rbac\.authorization\.k8s\.io\/v1beta1/rbac\.authorization\.k8s\.io\/v1/g' *
修改Metrics-Server配置文件
原来的 metrics-server-deployment.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: metrics-server
namespace: kube-system
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: metrics-server
namespace: kube-system
labels:
k8s-app: metrics-server
spec:
selector:
matchLabels:
k8s-app: metrics-server
template:
metadata:
name: metrics-server
labels:
k8s-app: metrics-server
spec:
serviceAccountName: metrics-server
volumes:
# mount in tmp so we can safely use from-scratch images and/or read-only containers
- name: tmp-dir
emptyDir: {}
containers:
- name: metrics-server
image: k8s.gcr.io/metrics-server-amd64:v0.3.6
imagePullPolicy: Always
volumeMounts:
- name: tmp-dir
mountPath: /tmp
修改为:
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: metrics-server
namespace: kube-system
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: metrics-server
namespace: kube-system
labels:
k8s-app: metrics-server
spec:
selector:
matchLabels:
k8s-app: metrics-server
template:
metadata:
name: metrics-server
labels:
k8s-app: metrics-server
spec:
serviceAccountName: metrics-server
volumes:
# mount in tmp so we can safely use from-scratch images and/or read-only containers
- name: tmp-dir
emptyDir: {}
containers:
- name: metrics-server
# 修改image 和 imagePullPolicy
image: hadoop03:5000/metrics-server-amd64:v0.3.6
imagePullPolicy: IfNotPresent
# 新增command配置
command:
- /metrics-server
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalDNS,InternalIP,ExternalDNS,ExternalIP,Hostname
volumeMounts:
- name: tmp-dir
mountPath: /tmp
# 新增resources配置
resources:
limits:
cpu: 300m
memory: 200Mi
requests:
cpu: 200m
memory: 100Mi
[root@hadoop03 1.8+]# pwd
/opt/module/k8s/metrics/metrics-server-0.3.6/deploy/1.8+
[root@hadoop03 1.8+]# kubectl apply -f `pwd`
### 需要等待一段时间
[root@hadoop03 1.8+]# kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
hadoop01 100m 5% 1062Mi 61%
hadoop02 87m 4% 996Mi 53%
hadoop03 245m 12% 1730Mi 45%
[root@hadoop03 1.8+]# kubectl top pods
NAME CPU(cores) MEMORY(bytes)
glusterfs-cw8jv 6m 105Mi
glusterfs-lsgkw 10m 70Mi
glusterfs-phs69 5m 81Mi
heketi-66885446bd-l2nmq 5m 47Mi
pod-use-pvc 0m 0Mi