metrics-server - unable to fully collect metrics
文章目录
- @[toc]
- 部署 metrics-server 的前提条件
- 部署 metrics-server 需要注意的地方
- 修改镜像的 tag
- 修改启动参数
- 不完整的报错合集
- 没有配置 --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
- 没有配置 --kubelet-insecure-tls
- apiserver 节点与 metrics-server pod 之间网络不通
- 个人场景
部署 metrics-server 的前提条件
- 要保证
apiserver
所在节点和metrics-serevr
的pod
之间网络可以互通 [ kubeadm 部署的集群会部署相应的 work 节点组件 ] - 要保证
apiserver
配置中开启了聚合配置 [ kubeadm 部署的集群,默认开启了聚合 ]
部署 metrics-server 需要注意的地方
修改镜像的 tag
- 官方下载下来的镜像是国外仓库的,国内很难拉取
sed -i 's#k8s.gcr.io#registry.cn-hangzhou.aliyuncs.com/google_containers#g' components.yaml
修改前
image: k8s.gcr.io/metrics-server-amd64:v0.3.6
修改后
image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.6
修改启动参数
修改前
- 官方只有两个启动参数
args:- --cert-dir=/tmp- --secure-port=4443
修改后
metric-resolution
:从 kubelet 采集数据的周期,默认为 60s
kubelet-preferred-address-types
:优先使用 InternalIP 来访问 kubelet,这样可以避免节点名称没有 DNS 解析记录时,通过节点名称调用节点 kubelet API 失败的情况
默认为 Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP
kubelet-insecure-tls
:不要验证 kubelet 提供的服务证书
- args:- --cert-dir=/tmp- --secure-port=4443- --metric-resolution=10s- --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP- --kubelet-insecure-tls
不完整的报错合集
没有配置 --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
- metrics-server 会有类似如下的报错
E0907 14:29:51.774592 1 manager.go:102] unable to fully collect metrics: [unable to fully scrape metrics from source kubelet_summary:<node_name>: unable to
fetch metrics from Kubelet <node_name> (<node_name>): Get https://<node_name>:10250/stats/summary/: dial tcp: lookup <node_name> on 10.96.0.10:53: no such host, unable to fully scr
ape metrics from source kubelet_summary:<node_name>: unable to fetch metrics from Kubelet <node_name> (<node_name>): Get https://<node_name>:10250/stats/summary/: dial tcp: lookup
<node_name> on 10.96.0.10:53: no such host, unable to fully scrape metrics from source kubelet_summary:<node_name>: unable to fetch metrics from Kubelet <node_name> (<node_name>):
Get https://<node_name>:10250/stats/summary/: dial tcp: lookup <node_name> on 10.96.0.10:53: no such host, unable to fully scrape metrics from source kubelet_summary:<node_name>: unable to fetch metrics from Kubelet <node_name> (<node_name>): Get https://<node_name>:10250/stats/summary/: dial tcp: lookup <node_name> on 10.96.0.10:53: no such host]
E0907 14:30:10.517886 1 reststorage.go:112] unable to fetch node metrics for node "<node_name>": no metrics known for node "<node_name>"
- 当然,也可以在 metrics-server 里面增加 hosts 解析
没有配置 --kubelet-insecure-tls
x509: certificate signed by unknown authority
apiserver 节点与 metrics-server pod 之间网络不通
- metrics-server 会有类似如下的报错
unable to fully collect metrics: unable to fully scrape metrics from source kubelet_summary:<node_name>: unable to get CPU for container "metrics-server" in pod kube-system/metrics-server-7db5b7cb7c-pkcjb on node "<node_name>", discarding data: missing cpu usage metric
- 在 apiserver 里可以看到类似如下的报错
v1beta1.metrics.k8s.io failed with: failing or missing response from https://172.30.1.16:4443/apis/metrics.k8s.io/v1beta1: Get "https://172.30.1.16:4443/apis/metrics.k8s.io/v1beta1": context deadline exceeded
v1beta1.metrics.k8s.io failed with: failing or missing response from https://172.30.1.16:4443/apis/metrics.k8s.io/v1beta1: Get "https://172.30.1.16:4443/apis/metrics.k8s.io/v1beta1": dial tcp 172.30.1.16:4443: i/o timeout
个人场景
- 前期使用的二进制部署的 k8s 集群,当时的规划是
master
节点不运行pod
,于是没有安装flannel
插件- 整体部署中,
flannel
采用了pod
的形式部署,如果master
节点要部署flannel
,等同于master
节点需要复用work
节点,与原先的期望不符合
- 整体部署中,
- 于是在
master
节点复用node
节点的情况下,将节点标记为不可调度
并驱逐所有负载
将节点标记为不可调度
kubectl cordon <node name>
驱逐节点
pod
,保留daemonset
类型的pod
kubectl drain <node name> --ignore-daemonsets
metrics-server - unable to fully collect metrics相关推荐
- Kubernetes — 安装 Metrics Server
目录 文章目录 目录 Kubernetes Metrics Server 启用 API Aggregator 安装 Metrics Server Kubernetes Metrics Server K ...
- Easypack: Ansible方式部署工具中增加Metrics Server支持
在Easypack中提供了多套Kubernetes快速部署的工具,基于Bash脚本和Ansible的,Ansible的方式也有基于K3S和普通的Kubernetes的两种.这篇文章介绍一下普通Kube ...
- k8s 1.14部署metrics server显示running但是报ServiceUnavailable错误
k8s 1.14部署metrics server显示running但是报ServiceUnavailable错误 查看metrics server日志: [root@master metrics-se ...
- 【K8S 七】Metrics Server部署中的问题
目录 填坑过程 问题一:启动metrics server报证书错误:x509: cannot validate certificate for x.x.x.x because it doesn't c ...
- Kubernetes基于Metrics Server的HPA
Kubernetes基于Metrics Server的HPA [TOC] 1. 环境说明和相关介绍 我的kubernetes环境: kubeadm安装的kubernetes1.11 Horizonta ...
- k8s搭建监控:安装metrics server和dashboard
安装metrics server 参考:https://github.com/kubernetes-sigs/metrics-server kubectl create -f components. ...
- Metrics Server安装以及报错解决
在查看kubernetes的测试环境中,使用top命令查看Pod的CPU.内存使用过程中,遇到以下问题: $ kubectl top po W0818 03:22:46.090578 26207 to ...
- 安装 Metrics server
安装 Metrics server Metrics Server 是 Kubernetes 内置自动缩放管道的可扩展.高效的容器资源指标来源. Metrics Server 从 Kubelets 收集 ...
- Kubernetes 【监控】1. Metrics Server、Aggregator APIServer和Prometheus监控体系
文章目录 1. 背景 2. 简介 3. 监控对象类型 4. Metrics Server简介 5. Metrics Server部署 5.1 下载并解压Metrics-Server 5.2 修改Met ...
最新文章
- flash中制的SWC组件怎样导入到flex中使用
- 前缀函数及kmp算法
- 用OleDb写的一个导出Excel的方法
- 二进制异或--7.18待完善
- H.266 参考软件VTM下载和安装
- table 首先冻结_首先记录异常的根本原因
- k-d tree算法原理及实现
- 用js实现改变随意改变div属性style的名称和值的结果
- SPPnet论文总结
- 计算机关闭445端口,如何关闭445端口 win7/win10关闭445端口的方法图解
- 从tushare pro获取上证指数内成分股权重排序分出等级
- 智慧城市无人机倾斜摄影三维建模取得的成果展示
- IDEA 返回上一步 快捷键
- keychron的机械键盘
- 人工智能产品普及的今天,软件测试人员也在自我进化
- 七月算法课程《python爬虫》第三课: 爬虫基础知识与简易爬虫实现
- Linux更改用户名密码
- 使用puppeteer启动并最大化显示Chrome浏览器
- 诺基亚如何利用计算机上网,诺基亚手机连接wifi的方法步骤
- 8 月 “图无处不在” 线上直播开始报名啦
热门文章
- 《Activiti 深入BPM工作流》-----如何实现一工作任务的查询?
- JDK的安装/卸载/检查
- 护卫神mysql提权_护卫神主机大师被提权漏洞利用(可千万不能乱装护卫神主机管理一键安装的软件)...
- 如何抓住客户,让实体店“活”起来!
- Lambda架构和Kappa架构
- 4.Ubuntu16.04中SNMP配置
- springboot中使用freemarker生成word文档并打包成zip下载(简历)
- 施乐背包服务器显示代码a0,富士施乐故障维修代码.doc
- 胡小林:把日常生活中碰到的事变成我们发露忏悔的机会
- 信息物理系统CPS工业信息物理系统ICPS