java metrics 简书_Metrics Server 安装
#什么是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 安装相关推荐
- java metrics 简书_Metrics 入门文档翻译
作者:拔剑少年 简书地址:https://www.jianshu.com/u/dad4d9675892 博客地址:https://it18monkey.github.io 转载请注明出处 Metric ...
- java metrics 简书_Spring Boot Metrics
Spring Metrics https://docs.spring.io/spring-metrics/docs/current/public/prometheus Spring Boot Metr ...
- java metrics 简书_Micrometer 收集Metrics
添加依赖 # Spring Boot 收集Metrics org.springframework.boot spring-boot-starter-actuator # 提供Prometheus格式的 ...
- java metrics 简书_Dropwizard Metrics使用
概述 Metrics is a Java library which gives you unparalleled insight into what your code does in produc ...
- mysql脚本简书,mysql一键安装脚本
#!/bin/bash #MySQL一键安装脚本 #脚本运行前请确认本机没有安装其他版本的MySQL #运行脚本前请详细阅读my.cnf文件 PASSWORD=`cat my.cnf | grep p ...
- mysql安装简书_MySQL的安装与配置——详细教程
免安装版的Mysql MySQL关是一种关系数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用的 标准化语言,其特点为体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,在 Web 应 ...
- php nginx环境 简书,Piwik的安装使用以及php+nginx环境搭建
1.Piwik简介 Piwik是一个PHP和MySQL的开放源代码的Web统计软件,它给你一些关于你的网站的实用统计报告,比如网页浏览人数,访问最多的页面,搜索引擎关键词等等. Piwik拥有众多不同 ...
- java泛型 简书_一文带你认识Java泛型基础
Java泛型基础 1. 认识泛型 泛型是在JDK1.5之后增加的新功能. 泛型可以解决数据的安全性问题, 主要的原理是在类声明的时候通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型. ...
- json java对象 简书_Java 对象的 Json 化与反 Json 化
最近在家里修习 Java 这项技能,估计快点满技能点儿了,很开心.不过遇到了一个问题,困扰了我一阵子.问题是这样的,我要写 Android App,与服务器交互.大家都知道 Javascript 不知 ...
最新文章
- IE和火狐都支持的方法(输入用户名和密码后按下 enter 键)
- C#搭建CEF(CEFGLUE) 环境。
- java定义final_Java中何时将方法声明为final的
- iOS 动画绘制线条颜色渐变的折线图
- LeetCode 1061. 按字典序排列最小的等效字符串(并查集)
- vscode写python爬虫_如何在vscode中调试python scrapy爬虫
- Float 运算的怪异性
- 数据结构作业第二章题解
- 11-8 热点key的重建优化
- java贝叶斯分类器 开源_贝叶斯分类器
- 移动web适配利器-rem
- 《动手学深度学习》(PyTorch版)代码注释 - 56 【Machine_translation】
- qt中的toUtf8, toLatin1, Local8bit编码问题
- Access 的 AutoExec 宏
- AC/DC电源的设计原理
- 信息资源管理3500字超详细,全网最全笔记!!(第一章 1)
- 攻防世界WEB练习-easyupload
- gitbook搭建在线书籍
- 【redis问题】无限Waiting for the cluster to join......
- mysql数据库建立_Mysql 数据库创建基本步骤
热门文章
- 计算机课外兴趣小组活动教案,信息技术兴趣小组活动教案(上).doc
- Wayland入门12:输入设备管理器
- 计算机屏幕截图怎么操作,电脑屏幕截图怎么弄?
- fft谱分析中的栅栏效应和频谱泄露
- mysql 乱码 越南_记一次Unipack越南文乱码Bug的修复
- SAP中 ABAP 中 跳转到指定事务代码界面2种方式
- WebService之通讯协议:SOAP
- 浅谈SDN架构下的运维工作
- 基于微服务架构的餐饮系统的设计与实现计算机毕业设计源码86393
- 偏微分方程的数值解(五): 二维状态空间的偏微分方程的 MATLAB 解法