文章目录

  • @[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-serevrpod 之间网络可以互通 [ 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相关推荐

  1. Kubernetes — 安装 Metrics Server

    目录 文章目录 目录 Kubernetes Metrics Server 启用 API Aggregator 安装 Metrics Server Kubernetes Metrics Server K ...

  2. Easypack: Ansible方式部署工具中增加Metrics Server支持

    在Easypack中提供了多套Kubernetes快速部署的工具,基于Bash脚本和Ansible的,Ansible的方式也有基于K3S和普通的Kubernetes的两种.这篇文章介绍一下普通Kube ...

  3. k8s 1.14部署metrics server显示running但是报ServiceUnavailable错误

    k8s 1.14部署metrics server显示running但是报ServiceUnavailable错误 查看metrics server日志: [root@master metrics-se ...

  4. 【K8S 七】Metrics Server部署中的问题

    目录 填坑过程 问题一:启动metrics server报证书错误:x509: cannot validate certificate for x.x.x.x because it doesn't c ...

  5. Kubernetes基于Metrics Server的HPA

    Kubernetes基于Metrics Server的HPA [TOC] 1. 环境说明和相关介绍 我的kubernetes环境: kubeadm安装的kubernetes1.11 Horizonta ...

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

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

  7. Metrics Server安装以及报错解决

    在查看kubernetes的测试环境中,使用top命令查看Pod的CPU.内存使用过程中,遇到以下问题: $ kubectl top po W0818 03:22:46.090578 26207 to ...

  8. 安装 Metrics server

    安装 Metrics server Metrics Server 是 Kubernetes 内置自动缩放管道的可扩展.高效的容器资源指标来源. Metrics Server 从 Kubelets 收集 ...

  9. Kubernetes 【监控】1. Metrics Server、Aggregator APIServer和Prometheus监控体系

    文章目录 1. 背景 2. 简介 3. 监控对象类型 4. Metrics Server简介 5. Metrics Server部署 5.1 下载并解压Metrics-Server 5.2 修改Met ...

最新文章

  1. flash中制的SWC组件怎样导入到flex中使用
  2. 前缀函数及kmp算法
  3. 用OleDb写的一个导出Excel的方法
  4. 二进制异或--7.18待完善
  5. H.266 参考软件VTM下载和安装
  6. table 首先冻结_首先记录异常的根本原因
  7. k-d tree算法原理及实现
  8. 用js实现改变随意改变div属性style的名称和值的结果
  9. SPPnet论文总结
  10. 计算机关闭445端口,如何关闭445端口 win7/win10关闭445端口的方法图解
  11. 从tushare pro获取上证指数内成分股权重排序分出等级
  12. 智慧城市无人机倾斜摄影三维建模取得的成果展示
  13. IDEA 返回上一步 快捷键
  14. keychron的机械键盘
  15. 人工智能产品普及的今天,软件测试人员也在自我进化
  16. 七月算法课程《python爬虫》第三课: 爬虫基础知识与简易爬虫实现
  17. Linux更改用户名密码
  18. 使用puppeteer启动并最大化显示Chrome浏览器
  19. 诺基亚如何利用计算机上网,诺基亚手机连接wifi的方法步骤
  20. 8 月 “图无处不在” 线上直播开始报名啦

热门文章

  1. 《Activiti 深入BPM工作流》-----如何实现一工作任务的查询?
  2. JDK的安装/卸载/检查
  3. 护卫神mysql提权_护卫神主机大师被提权漏洞利用(可千万不能乱装护卫神主机管理一键安装的软件)...
  4. 如何抓住客户,让实体店“活”起来!
  5. Lambda架构和Kappa架构
  6. 4.Ubuntu16.04中SNMP配置
  7. springboot中使用freemarker生成word文档并打包成zip下载(简历)
  8. 施乐背包服务器显示代码a0,富士施乐故障维修代码.doc
  9. 胡小林:把日常生活中碰到的事变成我们发露忏悔的机会
  10. 信息物理系统CPS工业信息物理系统ICPS