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管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

k8s部署MongDB全过程

《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接... 目录一、环境准备1.1 环境说明1.2 创建 namespace1.3 创建mongdb账号/密码二、创建Sec

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys