kubectl top命令报错:Metrics API not available

在没有完善k8s监控体系的情况下,基于k8s集群查看node节点的运行情况。于是想到命令:

$ kubectl top node
$ kubectl top pod

这两个命令会直接报错"Metrics API not available",这是什么原因呢?如何解决?

解决:

原因:

因为默认情况下k8s集群只提供了收集数据的模块–kubelet中的cadvisor。它类似于zabbix的agent代理程序,用来收集被监控节点的数据信息。

但是k8s集群却没有提供zabbix-server端,没有监控收集端,这时候我们需要自己安装server镜像。这个文件就是metrice-server程序。

在这里插入图片描述
因此,我们只需要安装一个Metrics-server端,就可以提供监控的API接口了。

解决方法

监控端的项目在github上,地址为:https://github.com/kubernetes-sigs/metrics-server

通过提示,我们可以使用下面的命令下载yaml文件,来安装Metrics-server端。命令如下:

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

需要注意的问题

1、默认的yaml文件提供的为外网地址,我们没有VPN是访问不到的。因此,我们需要修改指定的镜像,这里我给大家提供一个docker hub上的镜像地址。

image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.6.1

2、默认service端和cadvisor端是通过https的证书进行通信的,这时候我们要忽略这个配置。

args:
 - --cert-dir=/tmp
 - --secure-port=4443
 - --kubelet-insecure-tls  # 添加这一行
 - --kubelet-preferred-address-types=InternalIP

运行文件

最后,我们有了yaml文件后,执行这个文件就可以了。

$ kubectl apply -f components.yaml

metrice-server运行正常后,运行kubectl top pod,出现“Error from server (ServiceUnavailable): the server is currently unable to handle the request (get pods.metrics.k8s.io)”

解决方法:新增hostNetwork: true到components.yaml
参考地址:https://stackoverflow.com/questions/53811388/error-from-server-serviceunavailable-the-server-is-currently-unable-to-handle

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    k8s-app: metrics-server
  name: metrics-server
  namespace: kube-system
spec:
  selector:
    matchLabels:
      k8s-app: metrics-server
  strategy:
    rollingUpdate:
      maxUnavailable: 0
  template:
    metadata:
      labels:
        k8s-app: metrics-server
    spec:
      hostNetwork: true   #新增
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=4443
        - --kubelet-insecure-tls
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        - --metric-resolution=15s
        image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.6.1
        imagePullPolicy: IfNotPresent
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值