zoukankan      html  css  js  c++  java
  • Kubernetes监控集群资源利用率(Metrics-server+cAdvisor)

    了解Metrics之前先了解kubectl自带的一个top命令,它是显示资源利用率的,包括cpu,内存和存储。
    image.png

    通过kubectl top --help了解到top命令有两个子命令,支持pod和node这两个维度去查看。

    image.png

    当我们使用kubectl top nodekubectl top pod命令时报错:

    image.png

    其实这个原因是top命令是需要调用一个资源的,该资源恰好提供了cpu或者内存的信息,而提供这个资源的就是报错信息中所提到的heapster,这个heapster是一个k8s早期的监控组件,为top提供数据来源,之后这个组件被完全弃用,官方社区研发了一个新的组件来替换它,替代者就是Metrics-server,它的功能就是一个聚合器,Metrics-server并不直接采集cpu等监控数据,它是从cadvisor组件中去聚合响应的监控数据,cadvisor已经内置到k8s agent中了,所以我们只需要安装Metrics-server即可

    image.png

    部署方式

    # 下载所需文件
    git clone https://github.com/kubernetes-incubator/metrics-server
    cd metrics-server/deploy/kubernetes
    # 编辑替换源地址并添加参数
    vi metrics-server-deployment.yaml
    
    # 修改镜像地址并添加最后两行参数
    ···
          containers:
          - name: metrics-server
            image: lizhenliang/metrics-server-amd64:v0.3.1
            imagePullPolicy: IfNotPresent
            args:
              - --cert-dir=/tmp
              - --secure-port=4443
              - --kubelet-insecure-tls
              - --kubelet-preferred-address-types=InternalIP
    ···
    
    # 应用所有 yaml文件
    kubectl apply -f .
    # 查看metrics-server状态
    kubectl get pod -n kube-system
    # 查看metrics-server是否注册到apiservice中
    kubectl get apiservice
    

    添加参数说明:

    • --kubelet-insecure-tls:让metrics-server以非https安全方式连接kubectl
    • --kubelet-preferred-address-types:让metrics-server不用主机名而使用节点实际的IP地址连接kubelet

    若网络访问慢,也可直接下载本站压缩包,点击下载

    wget https://leif.fun/downloads/kubernetes/metrics-server.zip
    unzip metrics-server.zip
    cd metrics-server
    kubectl apply -f .
    

    文件功能介绍:

    • metrics-server-deployment.yaml:部署metrics服务
    • metrics-server-service.yaml:暴露metrics服务
    • metrics-apiservice.yaml:把metrics服务注册到k8s的api中
    • 其他文件:授权访问

    接下来就可以正常使用top命令查看资源状态了

    image.png

    注意:1000m=1c

    总结

    监控流程:kubectl top -> apiserver-> metrics-server pod -> kubectl(cadvisor)

  • 相关阅读:
    语文作业
    在Windows下为PHP5.5安装redis扩展
    PHP安全处理之Mcrypt使用总结
    CSS3 动画
    微信开发--获取用户openID
    微信公众号开发--获取用户信息
    php 中gd库的安装
    随机输入几个数,输出重复的数字和重复的次数
    永久解决"Error:java: 错误: 不支持发行版本 12"的问题
    报"java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing"的原因和如何处理
  • 原文地址:https://www.cnblogs.com/Python-K8S/p/14291425.html
Copyright © 2011-2022 走看看