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

相关文章

Python实现快速扫描目标主机的开放端口和服务

《Python实现快速扫描目标主机的开放端口和服务》这篇文章主要为大家详细介绍了如何使用Python编写一个功能强大的端口扫描器脚本,实现快速扫描目标主机的开放端口和服务,感兴趣的小伙伴可以了解下... 目录功能介绍场景应用1. 网络安全审计2. 系统管理维护3. 网络故障排查4. 合规性检查报错处理1.

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

SQL Server中行转列方法详细讲解

《SQLServer中行转列方法详细讲解》SQL行转列、列转行可以帮助我们更方便地处理数据,生成需要的报表和结果集,:本文主要介绍SQLServer中行转列方法的相关资料,需要的朋友可以参考下... 目录前言一、为什么需要行转列二、行转列的基本概念三、使用PIVOT运算符进行行转列1.创建示例数据表并插入数

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

nacos服务无法注册到nacos服务中心问题及解决

《nacos服务无法注册到nacos服务中心问题及解决》本文详细描述了在Linux服务器上使用Tomcat启动Java程序时,服务无法注册到Nacos的排查过程,通过一系列排查步骤,发现问题出在Tom... 目录简介依赖异常情况排查断点调试原因解决NacosRegisterOnWar结果总结简介1、程序在

MongoDB搭建过程及单机版部署方法

《MongoDB搭建过程及单机版部署方法》MongoDB是一个灵活、高性能的NoSQL数据库,特别适合快速开发和大规模分布式系统,本文给大家介绍MongoDB搭建过程及单机版部署方法,感兴趣的朋友跟随... 目录前言1️⃣ 核心特点1、文档存储2、无模式(Schema-less)3、高性能4、水平扩展(Sh

Docker + Redis 部署集群的实现步骤

《Docker+Redis部署集群的实现步骤》本文详细介绍了在三台服务器上部署高可用Redis集群的完整流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、环境准备1. 服务器规划(3 台服务器)2. 防火墙配置(三台服务器均执行)3. 安装 docke

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他