天天看点

k8s笔记24--安装metrics-server及错误处理1 介绍2 安装3 常见错误4 说明

k8s笔记24--安装metrics-server及错误处理

  • 1 介绍
  • 2 安装
  • 3 常见错误
    • 第一次错误 持续 Failed probe
    • 第二次错误 bad status code "403 Forbidden"
  • 4 说明

1 介绍

最近一个同事在老版本的 k8s 上安装metrics-server,pod一直处于running 非就绪状态,经过查看发现存在 tls 、软件版本、 资源权限等问题。记录在此处,以便于后续查阅、同类问题续更。

2 安装

参考官方文档 kubernetes-sigs/metrics-server 执行如下命令即可

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

注意事项:

  1. 如果需要忽略 Kubelet certificate ,name只需要在 deployment 的containers.args 中加上 –kubelet-insecure-tls 即可
  2. 如果在国内,需要将镜像仓库更改为国内的源,例如阿里云的,例如将 8s.gcr.io/metrics-server/metrics-server 更改为 registry.aliyuncs.com/google_containers/metrics-server
  3. 需要关注k8s 和 metrics-server 版本对应关系,高版本的server可能不兼容低版本的k8s集群
  4. 需要确认最新 components.yaml 中授权是不是满足需求

3 常见错误

笔者最近在 k8s 1.18.0 版本上安装 metrics-server, 先后报了两种错,具体如下:

第一次错误 持续 Failed probe

持续报错如下,检查参数发现都正常,最后发现1.18.0 和 metrics-server 6.x.x 不匹配 ,将其更改为 0.5.0 后报错发生改变了

Compatibility Matrix

Metrics Server Metrics API group/version Supported Kubernetes version
0.6.x metrics.k8s.io/v1beta1 1.19+
0.5.x metrics.k8s.io/v1beta1 *1.8+
0.4.x metrics.k8s.io/v1beta1 *1.8+
0.3.x metrics.k8s.io/v1beta1 1.18-1.21+
I0209 06:41:27.899879       1 server.go:187] "Failed probe" probe="metric-storage-ready" err="no metrics to serve"
I0209 06:41:37.899853       1 server.go:187] "Failed probe" probe="metric-storage-ready" err="no metrics to serve"
           

第二次错误 bad status code “403 Forbidden”

将版本更改为0.5.0 后持续报错403错误,根据提示 /stats/summary 发现可能是权限不够,检查发现最新的 components.yaml (截止2023-02-09) 中ClusterRole中只有nodes/metrics权限,缺少 nodes/stats 权限,因此手动添加权限后重新部署就恢复正常。

I0209 06:54:30.425470       1 server.go:188] "Failed probe" probe="metric-storage-ready" err="not metrics to serve"
E0209 06:54:34.737196       1 scraper.go:139] "Failed to scrape node" err="GET \"https://172.22.0.139:10250/stats/summary?only_cpu_and_memory=true\": bad status code \"403 Forbidden\"" node="cnshc-map-p01012"
E0209 06:54:34.743811       1 scraper.go:139] "Failed to scrape node" err="GET \"https://172.22.0.67:10250/stats/summary?only_cpu_and_memory=true\": bad status code \"403 Forbidden\"" node="cnshc-map-p01041"
I0209 06:54:40.425528       1 server.go:188] "Failed probe" probe="metric-storage-ready" err="not metrics to serve"
E0209 06:54:49.734943       1 scraper.go:139] "Failed to scrape node" err="GET \"https://172.22.0.67:10250/stats/summary?only_cpu_and_memory=true\": bad status code \"403 Forbidden\"" node="cnshc-map-p01041"
E0209 06:54:49.749762       1 scraper.go:139] "Failed to scrape node" err="GET \"https://172.22.0.139:10250/stats/summary?only_cpu_and_memory=true\": bad status code \"403 Forbidden\"" node="cnshc-map-p01012"
I0209 06:54:50.425584       1 server.go:188] "Failed probe" probe="metric-storage-ready" err="not metrics to serve"
           

4 说明

软件:

k8s 版本: 1.18.0

参考文档:

metrics-server/blob/master/KNOWN_ISSUES.md

github metcis-server

unable to fetch metrics from node c2: request failed - “403 Forbidden”

Metrics servers deployment fails “no metrics to serve”

继续阅读