Kubernetes Monitoring — Metrics Server

永久地址:Kubernetes Monitoring — Metrics Server(保存网址不迷路 🙃)

 

问题描述

该笔记将记录:在 Kubernetes Cluster 中,如何部署 Metrics Server 服务,以及常见问题处理。

解决方案

我们的测试环境为 Kubernetes Cluster v1.16 版本。

第一步、环境检查

Metrics Server 对网络和集群有特殊要求。这样要求在某些集群里不是默认配置,所以要先确认是否满足要求。

1)Metrics Server must be reachable from kube-apiserver

2)The kube-apiserver must be correctly configured to enable an aggregation layer
检查 /etc/kubernetes/manifests/kube-apiserver.yaml 选项,默认已经开启。

3)Nodes must have kubelet authorization configured to match Metrics Server configuration

4)Container runtime must implement a container metrics RPCs

第二步、修改配置信息

下载 components.yaml 文件,并根据需要进行修改:

1)我们需要修改在 YAML 文件中的镜像地址,使用私有镜像仓库;

默认镜像属于 k8s.gcr.io 仓库,拉取必然失败,修改为 bitnami/metrics-server:0.4.2

 

2)添加 --kubelet-preferred-address-types=InternalIP 与 --kubelet-insecure-tls 选项;

第三步、应用配置文件

# kubectl apply -f "/path/to/components.yaml"

# kubectl get -n kube-system pods -l k8s-app=metrics-server
NAME                              READY   STATUS    RESTARTS   AGE
metrics-server-66d4d747c4-nmzs6   1/1     Running   0          8m19s

第四步、查看 Pod 资源占用情况

# kubectl top node --sort-by=cpu
...

# kubectl top pod --all-namespaces --containers
...

常见错误汇总

Metrics not available for pod

# kubectl top -n kube-system pod
W0702 10:48:07.400630    6619 top_pod.go:266] Metrics not available for pod kube-system/coredns-58cc8c89f4-6czm4, age: 4267h8m49.400600321s
error: Metrics not available for pod kube-system/coredns-58cc8c89f4-6czm4, age: 4267h8m49.400600321s

通过添加 --kubelet-preferred-address-types=InternalIP 与 --kubelet-insecure-tls 选项解决;

unable to fetch pod metrics for pod

E0702 02:39:09.777832       1 reststorage.go:160] unable to fetch pod metrics for pod default/counter: no metrics known for pod
E0702 02:39:09.777843       1 reststorage.go:160] unable to fetch pod metrics for pod kube-system/etcd-k8s-master-02: no metrics known for pod
E0702 02:39:09.777863       1 reststorage.go:160] unable to fetch pod metrics for pod kube-system/fluentd-p6d29: no metrics known for pod
E0702 02:39:09.777874       1 reststorage.go:160] unable to fetch pod metrics for pod kube-system/kube-proxy-xdh2z: no metrics known for pod
E0702 02:39:09.777885       1 reststorage.go:160] unable to fetch pod metrics for pod kube-system/etcd-k8s-master-01: no metrics known for pod
E0702 02:39:09.777900       1 reststorage.go:160] unable to fetch pod metrics for pod kube-system/kube-proxy-jrpnd: no metrics known for pod

通过添加 --kubelet-preferred-address-types=InternalIP 与 --kubelet-insecure-tls 选项解决;

相关文章

「Kubernetes」- 部署 Prometheus 监控
「Kubernetes Monitoring」- Heapster
「Metrics Server」- components.yaml

参考文献

Kubernetes metrics-server Installation
Installing the Kubernetes Metrics Server
Kubernetes Metrics unable to fetch pod/node metrics - Stack Overflow
Installing the Kubernetes Metrics Server - Amazon EKS
Configure the Aggregation Layer - Kubernetes

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值