写在前面

在新版的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

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

2.修改Metrics-Server配置文件

  1. cd metrics-server-0.3.6/deploy/1.8+/
  2. 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。

  1. 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信息时,会报如下错误。

  1. error: metrics not available yet

写在最后

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

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

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

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

【K8S】K8S部署Metrics-Server服务的更多相关文章

  1. 启用k8s metrics server监控

    1.创建aggregator证书 方法一:直接使用二进制源码包安装 $ wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 $ chmod +x cfs ...

  2. k8s集群中部署prometheus server

    1.概述 本文档主要介绍如何在k8s集群中部署prometheus server用来作为监控的数据采集服务器,这样做可以很方便的对k8s集群中的指标.pod的.节点的指标进行采集和监控. 2.下载镜像 ...

  3. k8s中部署springcloud

    安装和配置数据存储仓库MySQL 1.MySQL简介 2.MySQL特点 3.安装和配置MySQL 4.在MySQL数据库导入数据 5.对MySQL数据库进行授权 1.MySQL简介 MySQL 是一 ...

  4. kubernetes之配置Metrics Server

    Kubernetes 1.8 关于资源使用情况的 metrics,可以通过 Metrics API 获取到, Kubernetes 1.11 已经废弃 heapster.这里我们基于 Kubernet ...

  5. Kubernetes(K8s)部署 SpringCloud 服务实战

    1. 概述 老话说的好:有可能性就不要放弃,要敢于尝试. 言归正传,之前我们聊了一下如何在 Kubernetes(K8s)中部署容器,今天我们来聊一下如何将 SpringCloud 的服务部署到 Ku ...

  6. K8S原来如此简单(五)Metrics Server与HPA

    什么是HPA https://kubernetes.io/zh/docs/tasks/run-application/horizontal-pod-autoscale/ 我们前面有通过kubectl ...

  7. Docker & k8s 系列三:在k8s中部署单个服务实例

    本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...

  8. k8s搭建监控:安装metrics server和dashboard

      安装metrics server 参考:https://github.com/kubernetes-sigs/metrics-server kubectl  create -f component ...

  9. k8s 二进制部署详解

    环境说明: 192.168.1.101 -- master01 + etcd01 192.168.1.102 -- etcd02 192.168.1.103 -- etcd03 192.168.1.1 ...

  10. 优化:在k8s上部署的gitlab

    gitlab组件图 gitlab在k8s上占用资源 # kubectl top pods -n default | grep git* gitlab-gitaly-0 9m 444Mi gitlab- ...

随机推荐

  1. 对EL自己以及对于param、header、cookie的相关应用的相关知识点的复习

    EL表达式语言是一种可以计算和输出的java对象的简单语言. 列入请求语句为下面的方式:request.setAttribute("username","zhangsan ...

  2. java web知识点复习,重新编写学生选课系统的先关操作。

    为了复习之前学习的相关的html,javaweb等知识.自己有重新编写了一遍学生选课系统. 下面主要展示登录界面的代码,以及各个大的主页面的相关jsp. <%@ page language=&q ...

  3. 微信号网页版api

    Django Wechat Api djangowechatapi是基于wxpy和django制作的web应用 安装 使用pip pip install djangowechatapi 源码安装 gi ...

  4. javascript入门 之 ztree (九 单/复选框问题)

    <!DOCTYPE html> <HTML> <HEAD> <meta http-equiv="content-type" content ...

  5. json格式的文件操作2

    1.字典转换为字符串(json.dumps) jsongeshi={"name":"yajuan","age":"10" ...

  6. "被删除的文本"组件:<del> —— 快应用组件库H-UI

     <import name="del" src="../Common/ui/h-ui/text/c_tag_del"></import> ...

  7. 《深入理解 Java 虚拟机》读书笔记:晚期(运行期)优化

    正文 在部分商用虚拟机(Sun HotSpot.IBM J9)中,Java 程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为"热点代码& ...

  8. C#中分布式事务的超时处理问题

    事务是个很精妙的存在,我们在数据层.服务层.业务逻辑层等多处地方都会使用到. 在这里我只说下TransactionScope这个微软推荐使用的隐式事务.它是从Framework 2.0开始引入的一个事 ...

  9. stand up meeting 12/01/2015

    part 组员 今日工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云   赶工sprint3,各部分要合在一起时出现各种问题,各种修改测试:UI本身的功能继续实现完善    6 UWP对控件的 ...

  10. Linux 平台 安装 Composer

    1.检查是否安装 composer --version 2.下载安装 php -r "copy('https://install.phpcomposer.com/installer', 'c ...