K8S部署Metrics-Server服务

2024-09-02 16:44

本文主要是介绍K8S部署Metrics-Server服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Metrics-Server是k8s集群采集监控数据的聚合器,如采集node、pod的cpu、内存等数据,从 Kubernetes1.8 开始默认使用Metrics-Server采集数据,并通过Metrics API的形式提供查询,但是,kubeadm安装的k8s集群默认是没有安装Metrics-Server的,所以我们来安装一下Metrics-Server。

image-20240823132722799

⚠️ 需要注意的是 在 Kubernetes 1.7 版本引入了聚合层,允许第三方应用程序通过将自己注册到kube-apiserver上,仍然通过 API Server 的 HTTP URL 对新的 API 进行访问和操作。为了实现这个机制,Kubernetes 在 kube-apiserver 服务中引入了一个API 聚合层(API Aggregation Layer),用于将扩展 API 的访问请求转发到用户服务的功能。如果你是kubadm 的部署方式,默认已开启Kubernetes API聚合层。

  • Metrics Server项目地址: https://github.com/kubernetes-sigs/metrics-server
  • metrics-server版本与k8s版本对应关系: https://github.com/kubernetes-sigs/metrics-server#compatibility-matrix

image-20240823133922060

  1. 下载 Metrics Server 的部署文件:

    $ wget  https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
    
  2. 修改components.yaml 文件:

    • 国内墙,需要替换registry.k8s.io/metrics-server/metrics-server:v0.7.1 镜像地址,k8s.srebro.site/metrics-server/metrics-server:v0.7.1
    • --kubelet-insecure-tls , 在args 里加上这个参数,不验证kubelet提供的https证书,用于跳过 TLS 证书验证
    • --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP , 在args 里加上这个参数,指定 Metrics Server 在与 Kubelet 通信时的地址类型优先级。Metrics Server 会按照指定的顺序尝试使用不同的地址类型来连接 Kubelet。
      • InternalIP: Kubelet 的内部 IP 地址。
      • Hostname: Kubelet 的主机名。
      • InternalDNS: Kubelet 的内部 DNS 名称。
      • ExternalDNS: Kubelet 的外部 DNS 名称。
      • ExternalIP: Kubelet 的外部 IP 地址。
        spec:containers:- args:- --cert-dir=/tmp- --secure-port=10250- --kubelet-insecure-tls- --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP- --kubelet-use-node-status-port- --metric-resolution=15simage: k8s.srebro.site/metrics-server/metrics-server:v0.7.1imagePullPolicy: IfNotPresent
    

    image-20240823134320484

  3. **部署 Metrics Server **:

    $ kubectl apply -f components.yaml
    
  4. 验证 Metrics Server 是否成功部署:

    $ kubectl get pods -n kube-system -l k8s-app=metrics-server
    NAME                             READY   STATUS    RESTARTS   AGE
    metrics-server-74458669b-wvkkr   1/1     Running   0          130m
    
  5. 使用 kubectl top 命令查看 Pods 和 Nodes 的资源使用情况

    $ kubectl top pods
    NAME                            CPU(cores)   MEMORY(bytes)   
    pig-auth-58f7855c76-cft8m       3m           523Mi           
    pig-codegen-7799896dd6-mzfhx    3m           633Mi           
    pig-gateway-65854c6b5c-l7rdc    2m           425Mi           
    pig-gateway-65854c6b5c-t64c9    2m           451Mi           
    pig-monitor-5b5c68bc4f-kt5hn    11m          457Mi           
    pig-mysql-c867c676f-6zs9z       7m           439Mi           
    pig-quartz-657d5c9f77-qx6q5     19m          509Mi           
    pig-quartz-657d5c9f77-sbszt     5m           484Mi           
    pig-redis-6dbccc7854-f786j      2m           8Mi             
    pig-register-798bc58678-rqrrn   7m           647Mi           
    pig-ui-5ff9bbdd7f-ld7mb         0m           3Mi             
    pig-upms-d9dcc697f-7cdhw        17m          575Mi           
    pig-upms-d9dcc697f-klx6z        17m          492Mi  $ kubectl top nodes
    NAME           CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
    k8s-master01   230m         5%     3026Mi          41%       
    k8s-master02   240m         6%     2399Mi          32%       
    k8s-master03   214m         5%     2221Mi          30%       
    k8s-node01     264m         6%     6663Mi          90%       
    

image-20240823134642042
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟

这篇关于K8S部署Metrics-Server服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130512

相关文章

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

SQL Server 查询数据库及数据文件大小的方法

《SQLServer查询数据库及数据文件大小的方法》文章介绍了查询数据库大小的SQL方法及存储过程实现,涵盖当前数据库、所有数据库的总大小及文件明细,本文结合实例代码给大家介绍的非常详细,感兴趣的... 目录1. 直接使用SQL1.1 查询当前数据库大小1.2 查询所有数据库的大小1.3 查询每个数据库的详

Spring Boot 整合 SSE(Server-Sent Events)实战案例(全网最全)

《SpringBoot整合SSE(Server-SentEvents)实战案例(全网最全)》本文通过实战案例讲解SpringBoot整合SSE技术,涵盖实现原理、代码配置、异常处理及前端交互,... 目录Spring Boot 整合 SSE(Server-Sent Events)1、简述SSE与其他技术的对

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到