【K8S】K8S部署Metrics-Server服务

写在前面

在新版的K8S中,系统资源的采集均使用Metrics-Server服务,可以通过Metrics-Server服务采集节点和Pod的内存、磁盘、CPU和网络的使用率等信息。

读者可参考《【K8S】基于单Master节点安装K8S集群》一文搭建单Master节点的K8S集群。

说的具体点:新版K8S资源使用情况的度量(如容器的 CPU 和内存使用)可以通过 Metrics API 获取。

注意:

  • Metrics API 只可以查询当前的度量数据,并不保存历史数据
  • Metrics API URI 为 /apis/metrics.k8s.io/,在 k8s.io/metrics维护
  • 必须部署 metrics-server 才能使用该 API,metrics-server 通过调用 Kubelet Summary API 获取数据

部署Metrics-Server服务

1.下载并解压Metrics-Server

https://github.com/kubernetes-sigs/metrics-server/archive/v0.3.6.tar.gz
tar -zxvf v0.3.6.tar.gz 

 

2.修改Metrics-Server配置文件

cd metrics-server-0.3.6/deploy/1.8+/
vim metrics-server-deployment.yaml

 

vim metrics-server-deployment.yaml文件原有的内容如下所示。

 1 ---
 2 apiVersion: v1
 3 kind: ServiceAccount
 4 metadata:
 5   name: metrics-server
 6   namespace: kube-system
 7 ---
 8 apiVersion: apps/v1
 9 kind: Deployment
10 metadata:
11   name: metrics-server
12   namespace: kube-system
13   labels:
14     k8s-app: metrics-server
15 spec:
16   selector:
17     matchLabels:
18       k8s-app: metrics-server
19   template:
20     metadata:
21       name: metrics-server
22       labels:
23         k8s-app: metrics-server
24     spec:
25       serviceAccountName: metrics-server
26       volumes:
27       # mount in tmp so we can safely use from-scratch images and/or read-only containers
28       - name: tmp-dir
29         emptyDir: {}
30       containers:
31       - name: metrics-server
32         image: k8s.gcr.io/metrics-server-amd64:v0.3.6
33         imagePullPolicy: Always
34         volumeMounts:
35         - name: tmp-dir
36           mountPath: /tmp

 

修改后的文件内容如下所示。

 1 ---
 2 apiVersion: v1
 3 kind: ServiceAccount
 4 metadata:
 5   name: metrics-server
 6   namespace: kube-system
 7 ---
 8 apiVersion: apps/v1
 9 kind: Deployment
10 metadata:
11   name: metrics-server
12   namespace: kube-system
13   labels:
14     k8s-app: metrics-server
15 spec:
16   selector:
17     matchLabels:
18       k8s-app: metrics-server
19   template:
20     metadata:
21       name: metrics-server
22       labels:
23         k8s-app: metrics-server
24     spec:
25       serviceAccountName: metrics-server
26       volumes:
27       # mount in tmp so we can safely use from-scratch images and/or read-only containers
28       - name: tmp-dir
29         emptyDir: {}
30       containers:
31       - name: metrics-server
32         # 修改image 和 imagePullPolicy
33         image: mirrorgooglecontainers/metrics-server-amd64:v0.3.6
34         imagePullPolicy: IfNotPresent
35         # 新增command配置
36         command:
37         - /metrics-server
38         - --kubelet-insecure-tls
39         - --kubelet-preferred-address-types=InternalDNS,InternalIP,ExternalDNS,ExternalIP,Hostname
40         volumeMounts:
41         - name: tmp-dir
42           mountPath: /tmp
43         # 新增resources配置
44         resources:
45           limits:
46             cpu: 300m
47             memory: 200Mi
48           requests:
49             cpu: 200m
50             memory: 100Mi

修改完metrics-server-deployment.yaml文件后保存退出。

 

3.安装Metrics-Server

执行如下命令安装Metrics-Server。

kubectl apply -f metrics-server-0.3.6/deploy/1.8+/

 

4.查看node信息

安装完Metrics-Server之后,查看node信息,如下所示。

1 [root@binghe101 ~]# kubectl top node
2 NAME        CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
3 binghe101   141m         7%     1113Mi          65%       
4 binghe102   62m          3%     549Mi           32% 
5 binghe103   100m         5%     832Mi           48%

 

可以看到,使用Metrics-Server收集到节点信息,说明Metrics-Server安装成功。

注意事项

下载Metrics-Server安装文件之后,一定要修改metrics-server-deployment.yaml文件,在使用kubectl top node命令查看node信息时,会报如下错误。

error: metrics not available yet

写在最后

如果觉得文章对你有点帮助,请微信搜索并关注「 冰河技术 」微信公众号,跟冰河学习各种编程技术。

最后附上K8S最全知识图谱链接:

https://www.processon.com/view/link/5ac64532e4b00dc8a02f05eb?spm=a2c4e.10696291.0.0.6ec019a4bYSFIw#map

祝大家在学习K8S时,少走弯路。

posted @ 2020-09-09 10:57  老虎逛大街  阅读(1293)  评论(0编辑  收藏  举报
levels of contents