• kubernetes 之部署metrics-server v0.3.1


    Metrics-server简介

    Metrics-server是用来替换heapster获取集群上资源指标数据的,heapster从1.11开始逐渐被废弃了。

    在使用heapster时,获取资源指标是由heapster自已获取的,heapster有自已的获取路径,没有通过apiserver,后来k8s引入了资源指标API(Metrics API),于是资源指标的数据就从k8s的api中的直接获取,不必再通过其它途径。
    metrics-server: 它也是一种API Server,提供了核心的Metrics API,就像k8s组件kube-apiserver提供了很多API群组一样,但它不是k8s组成部分,而是托管运行在k8s之上的Pod。为了让用户无缝的使用metrics-server当中的API,还需要把这类自定义的API,通过聚合器聚合到核心API组里,
    然后可以把此API当作是核心API的一部分,通过kubectl api-versions可直接查看。
    metrics-server收集指标数据的方式是从各节点上kubelet提供的Summary API 即10250端口收集数据,收集Node和Pod核心资源指标数据,主要是内存和cpu方面的使用情况,并将收集的信息存储在内存中,所以当通过kubectl top不能查看资源数据的历史情况,其它资源指标数据则通过prometheus采集了。

    k8s中很多组件是依赖于资源指标API的功能 ,比如kubectl top 、hpa,如果没有一个资源指标API接口,这些组件是没法运行的。早期是依赖heapster。

     https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/metrics-server 

    下载六个文件并创建

    for file in auth-delegator.yaml auth-reader.yaml metrics-apiservice.yaml metrics-server-deployment.yaml metrics-server-service.yaml resource-reader.yaml
    do 
    wget https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.11/cluster/addons/metrics-server/$file
    done

    直接运行kubectl apply -f  .

    pod会启动失败需要修改参数

    将参数修改为你想要的,示例

    再执行kubectl apply -f .

    可以查看到pod正常运行了

    查看container的运行日志:kubectl logs -f metrics-server-v0.3.1-67f6877c59-5jshb -c metrics-server -n kube-system

    或有显示报错:

    解决方法:

    • 提示 无法解析节点的主机名,是metrics-server这个容器不能通过CoreDNS 10.96.0.10:53 解析各Node的主机名,metrics-server连节点时默认是连接节点的主机名,需要加个参数,让它连接节点的IP:
      “--kubelet-preferred-address-types=InternalIP”

    -

    • 因为10250是https端口,连接它时需要提供证书,所以加上--kubelet-insecure-tls,表示不验证客户端证书,此前的版本中使用--source=这个参数来指定不验证客户端证书。

    验证metrics-server

    报错:

    解决方法:是由于权限不够所造成的。在resource-reader.yaml文件添加一行

  • 相关阅读:
    CRM客户关系管理系统(十)
    CRM客户关系管理系统(九)
    CRM客户关系管理系统(八)
    CRM客户关系管理系统(七)
    CRM客户关系管理系统(六)
    5.使用Redis+Flask维护动态Cookies池
    1.数据结构--数组
    php接口安全设计浅谈
    python3 使用selenium +webdriver打开chrome失败,报错:FileNotFoundError: [Errno 2] No such file or directory: 'chromedriver': 'chromedriver'
    4.使用Redis+Flask维护动态代理池
  • 原文地址:https://www.cnblogs.com/both/p/10078316.html
Copyright © 2020-2023  润新知