#什么是metrics-server?

kubernetes 集群资源监控之前可以通过 heapster 来获取数据,在 1.11 开始开始逐渐废弃 heapster 了,采用 metrics-server 来代替,metrics-server 是集群的核心监控数据的聚合器,它从 kubelet 公开的 Summary API 中采集指标信息,metrics-server 是扩展的 APIServer,依赖于kube-aggregator,因为我们需要在 APIServer 中开启相关参数。

查看 APIServer 参数配置,确保你的 APIServer 启动参数中包含下的一些参数配置。

...

- --requestheader-client-ca-file=/etc/kubernetes/certs/proxy-ca.crt

- --proxy-client-cert-file=/etc/kubernetes/certs/proxy.crt

- --proxy-client-key-file=/etc/kubernetes/certs/proxy.key

- --requestheader-allowed-names=aggregator

- --requestheader-extra-headers-prefix=X-Remote-Extra-

- --requestheader-group-headers=X-Remote-Group

- --requestheader-username-headers=X-Remote-User

- --enable-aggregator-routing=true

...

如果您未在 master 节点上运行 kube-proxy,则必须确保 kube-apiserver 启动参数中包含--enable-aggregator-routing=true

#安装

从Metrics Server版本下载最新版本,并按如下所示进行部署:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml

目前我采用最新版本部署,v0.3.7

#完整的资源清单文件

---

apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRole

metadata:

name: system:aggregated-metrics-reader

labels:

rbac.authorization.k8s.io/aggregate-to-view: "true"

rbac.authorization.k8s.io/aggregate-to-edit: "true"

rbac.authorization.k8s.io/aggregate-to-admin: "true"

rules:

- apiGroups: ["metrics.k8s.io"]

resources: ["pods", "nodes"]

verbs: ["get", "list", "watch"]

---

apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRoleBinding

metadata:

name: metrics-server:system:auth-delegator

roleRef:

apiGroup: rbac.authorization.k8s.io

kind: ClusterRole

name: system:auth-delegator

subjects:

- kind: ServiceAccount

name: metrics-server

namespace: kube-system

---

apiVersion: rbac.authorization.k8s.io/v1

kind: RoleBinding

metadata:

name: metrics-server-auth-reader

namespace: kube-system

roleRef:

apiGroup: rbac.authorization.k8s.io

kind: Role

name: extension-apiserver-authentication-reader

subjects:

- kind: ServiceAccount

name: metrics-server

namespace: kube-system

---

apiVersion: apiregistration.k8s.io/v1beta1

kind: APIService

metadata:

name: v1beta1.metrics.k8s.io

spec:

service:

name: metrics-server

namespace: kube-system

group: metrics.k8s.io

version: v1beta1

insecureSkipTLSVerify: true

groupPriorityMinimum: 100

versionPriority: 100

---

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: coll/metrics-server:v0.3.7 # image默认是谷歌,修改为可用的

imagePullPolicy: IfNotPresent

args:

- --cert-dir=/tmp

- --secure-port=4443

command: #新增command配置

- /metrics-server

- --kubelet-insecure-tls

- --kubelet-preferred-address-types=InternalIP

ports:

- name: main-port

containerPort: 4443

protocol: TCP

securityContext:

readOnlyRootFilesystem: true

runAsNonRoot: true

runAsUser: 1000

volumeMounts:

- name: tmp-dir

mountPath: /tmp

nodeSelector:

kubernetes.io/os: linux

---

apiVersion: v1

kind: Service

metadata:

name: metrics-server

namespace: kube-system

labels:

kubernetes.io/name: "Metrics-server"

kubernetes.io/cluster-service: "true"

spec:

selector:

k8s-app: metrics-server

ports:

- port: 443

protocol: TCP

targetPort: main-port

---

apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRole

metadata:

name: system:metrics-server

rules:

- apiGroups:

- ""

resources:

- pods

- nodes

- nodes/stats

- namespaces

- configmaps

verbs:

- get

- list

- watch

---

apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRoleBinding

metadata:

name: system:metrics-server

roleRef:

apiGroup: rbac.authorization.k8s.io

kind: ClusterRole

name: system:metrics-server

subjects:

- kind: ServiceAccount

name: metrics-server

namespace: kube-system

#遇到的问题

E0908 03:43:06.048002 1 reststorage.go:135] unable to fetch node metrics for node "build-02": no metrics known for node

E0908 03:43:06.048022 1 reststorage.go:135] unable to fetch node metrics for node "build-01": no metrics known for node

E0908 03:43:06.048030 1 reststorage.go:135] unable to fetch node metrics for node "build-03": no metrics known for node

E0908 03:43:48.828393 1 manager.go:111] unable to fully collect metrics: [unable to fully scrape metrics from source kubelet_summary:build-03: unable to fetch metrics from Kubelet build-03 (build-03): Get https://build-03:10250/stats/summary?only_cpu_and_memory=true: dial tcp: lookup build-03 on 10.96.0.10:53: server misbehaving, unable to fully scrape metrics from source kubelet_summary:build-01: unable to fetch metrics from Kubelet build-01 (build-01): Get https://build-01:10250/stats/summary?only_cpu_and_memory=true: dial tcp: lookup build-01 on 10.96.0.10:53: server misbehaving, unable to fully scrape metrics from source kubelet_summary:build-02: unable to fetch metrics from Kubelet build-02 (build-02): Get https://build-02:10250/stats/summary?only_cpu_and_memory=true: dial tcp: lookup build-02 on 10.96.0.10:53: server misbehaving]

因为部署集群的时候,CA 证书并没有把各个节点的 IP 签上去,所以这里 metrics-server 通过 IP 去请求时,提示签的证书没有对应的 IP(错误:x509: cannot validate certificate for 192.168.33.11 because it doesn’t contain any IP SANs),我们可以添加一个--kubelet-insecure-tls参数跳过证书校验:

command: #新增command配置

- /metrics-server

- --kubelet-insecure-tls

- --kubelet-preferred-address-types=InternalIP

添加上面以上参数,然后再重新安装。

kubectl apply -f components.yaml

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

[root@build-01 manifests]# kubectl top node

NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%

build-01 142m 3% 3818Mi 50%

build-02 83m 2% 3674Mi 48%

build-03 2782m 69% 4262Mi 55%

相关文档:

java metrics 简书_Metrics Server 安装相关推荐

  1. java metrics 简书_Metrics 入门文档翻译

    作者:拔剑少年 简书地址:https://www.jianshu.com/u/dad4d9675892 博客地址:https://it18monkey.github.io 转载请注明出处 Metric ...

  2. java metrics 简书_Spring Boot Metrics

    Spring Metrics https://docs.spring.io/spring-metrics/docs/current/public/prometheus Spring Boot Metr ...

  3. java metrics 简书_Micrometer 收集Metrics

    添加依赖 # Spring Boot 收集Metrics org.springframework.boot spring-boot-starter-actuator # 提供Prometheus格式的 ...

  4. java metrics 简书_Dropwizard Metrics使用

    概述 Metrics is a Java library which gives you unparalleled insight into what your code does in produc ...

  5. mysql脚本简书,mysql一键安装脚本

    #!/bin/bash #MySQL一键安装脚本 #脚本运行前请确认本机没有安装其他版本的MySQL #运行脚本前请详细阅读my.cnf文件 PASSWORD=`cat my.cnf | grep p ...

  6. mysql安装简书_MySQL的安装与配置——详细教程

    免安装版的Mysql MySQL关是一种关系数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用的 标准化语言,其特点为体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,在 Web 应 ...

  7. php nginx环境 简书,Piwik的安装使用以及php+nginx环境搭建

    1.Piwik简介 Piwik是一个PHP和MySQL的开放源代码的Web统计软件,它给你一些关于你的网站的实用统计报告,比如网页浏览人数,访问最多的页面,搜索引擎关键词等等. Piwik拥有众多不同 ...

  8. java泛型 简书_一文带你认识Java泛型基础

    Java泛型基础 1. 认识泛型 泛型是在JDK1.5之后增加的新功能. 泛型可以解决数据的安全性问题, 主要的原理是在类声明的时候通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型. ...

  9. json java对象 简书_Java 对象的 Json 化与反 Json 化

    最近在家里修习 Java 这项技能,估计快点满技能点儿了,很开心.不过遇到了一个问题,困扰了我一阵子.问题是这样的,我要写 Android App,与服务器交互.大家都知道 Javascript 不知 ...

最新文章

  1. IE和火狐都支持的方法(输入用户名和密码后按下 enter 键)
  2. C#搭建CEF(CEFGLUE) 环境。
  3. java定义final_Java中何时将方法声明为final的
  4. iOS 动画绘制线条颜色渐变的折线图
  5. LeetCode 1061. 按字典序排列最小的等效字符串(并查集)
  6. vscode写python爬虫_如何在vscode中调试python scrapy爬虫
  7. Float 运算的怪异性
  8. 数据结构作业第二章题解
  9. 11-8 热点key的重建优化
  10. java贝叶斯分类器 开源_贝叶斯分类器
  11. 移动web适配利器-rem
  12. 《动手学深度学习》(PyTorch版)代码注释 - 56 【Machine_translation】
  13. qt中的toUtf8, toLatin1, Local8bit编码问题
  14. Access 的 AutoExec 宏
  15. AC/DC电源的设计原理
  16. 信息资源管理3500字超详细,全网最全笔记!!(第一章 1)
  17. 攻防世界WEB练习-easyupload
  18. gitbook搭建在线书籍
  19. 【redis问题】无限Waiting for the cluster to join......
  20. mysql数据库建立_Mysql 数据库创建基本步骤

热门文章

  1. 计算机课外兴趣小组活动教案,信息技术兴趣小组活动教案(上).doc
  2. Wayland入门12:输入设备管理器
  3. 计算机屏幕截图怎么操作,电脑屏幕截图怎么弄?
  4. fft谱分析中的栅栏效应和频谱泄露
  5. mysql 乱码 越南_记一次Unipack越南文乱码Bug的修复
  6. SAP中 ABAP 中 跳转到指定事务代码界面2种方式
  7. WebService之通讯协议:SOAP
  8. 浅谈SDN架构下的运维工作
  9. 基于微服务架构的餐饮系统的设计与实现计算机毕业设计源码86393
  10. 偏微分方程的数值解(五): 二维状态空间的偏微分方程的 MATLAB 解法