Kubernetes(k8s):部署、使用 metrics-server

Kubernetes(k8s):部署、使用 metrics-server

  • 一、metrics-server简介
  • 二、部署metrics-server
    • [2.1、 下载 Metrics Server 部署文件](#2.1、 下载 Metrics Server 部署文件)
    • [2.2、修改metrics-server.yaml 文件](#2.2、修改metrics-server.yaml 文件)
    • [2.3、 部署 Metrics Server](#2.3、 部署 Metrics Server)
    • [2.4、 检查 Metrics Server](#2.4、 检查 Metrics Server)
  • [三、使用 Metrics Server](#三、使用 Metrics Server)

|-----------------------------|
| 💖The Begin💖点点关注,收藏不迷路💖 |

基于Kubernetes 集群,并已经安装并配置好 kubectl 工具。

一、metrics-server简介

Metrics Server 可以帮助我们监控集群中节点和容器的资源使用情况。

在本篇 CSDN 博客中,我将详细介绍如何部署 Metrics Server 到 Kubernetes 集群中。


工作流程说明:

1、用户执行 kubectl top 命令,向 Metrics Server 发送查询请求。

2、Metrics Server 接收到查询请求后,向 kubelet/cAdvisor 发送请求获取容器的资源使用情况数据。

3、kubelet/cAdvisor 是运行在每个节点上的组件,负责收集和暴露容器的资源使用情况数据。它收到 Metrics Server 的请求后,查询本地 cAdvisor,并收集相应的数据。

4、kubelet/cAdvisor 将收集到的数据返回给 Metrics Server。

5、Metrics Server 对收集到的数据进行处理,并将处理后的结果返回给用户,用户可以通过命令行工具或其他监控工具查看容器的资源使用情况。

二、部署metrics-server

2.1、 下载 Metrics Server 部署文件

Kubernetes Metrics Server 的版本与 Kubernetes 版本之间的兼容性矩阵:

从 Metrics Server 的 GitHub 仓库下载部署文件。执行以下命令:

sql 复制代码
wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.4/components.yaml

##将文件名更改为 metrics-server.yaml
mv components.yaml metrics-server.yaml

2.2、修改metrics-server.yaml 文件

sql 复制代码
containers:
- args:
  - --cert-dir=/tmp
  - --secure-port=4443
  - --kubelet-preferred-address-types=InternalIP # 第一处修改
  - --kubelet-use-node-status-port
  - --metric-resolution=15s
  - --kubelet-insecure-tls # 第二处修改
  image: registry.aliyuncs.com/google_containers/metrics-server:v0.6.4 # 第三处修改
  imagePullPolicy: IfNotPresent

1、将 --kubelet-preferred-address-types 参数的值修改为 InternalIP,这表示 Metrics Server 将首选使用节点的 InternalIP 地址与 Kubelet 进行通信。

2、添加 --kubelet-insecure-tls 参数,这表示 Metrics Server 将使用不安全的 TLS 连接与 Kubelet 通信。请注意,这会降低通信的安全性,只应该在测试环境中使用。

3、将 image 字段的值修改为 registry.aliyuncs.com/google_containers/metrics-server:v0.7.1,这表示使用阿里云容器镜像服务中的 Metrics Server v0.7.1 版本。

2.3、 部署 Metrics Server

部署 Metrics Server 到你的 Kubernetes 集群中。

sql 复制代码
[root@k8s-master ~]#  kubectl apply -f metrics-server.yaml
serviceaccount/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
service/metrics-server created
deployment.apps/metrics-server created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
[root@k8s-master ~]#

2.4、 检查 Metrics Server

在一段时间后通过运行 kubectl get pods -n kube-system 命令来检查 Metrics Server 是否成功启动并运行。

sql 复制代码
kubectl get pods -n kube-system 

或者

##获取到具有标签 k8s-app=metrics-server 的 pods 列表
kubectl get pods -n kube-system -l k8s-app=metrics-server


三、使用 Metrics Server

Metrics Server 部署完成后,你就可以开始使用它了。

Metrics Server 会收集关于集群资源使用情况的指标数据,你可以使用 kubectl top 命令查看节点和容器的使用情况:

3.1、 查看节点使用情况

sql 复制代码
kubectl top nodes

3.2、查看命名空间中所有容器的使用情况

sql 复制代码
kubectl top pods -n <namespace>

kubectl top pods -n kube-system 

|---------------------------|
| 💖The End💖点点关注,收藏不迷路💖 |

相关推荐
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS5 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
codeejun5 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
赵文宇(温玉)5 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang5 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren5 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
忆~遂愿5 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器
Thneonl5 天前
你的 Pod 为什么 Pending:调度器两阶段
后端·kubernetes
不吃香菜kkk、5 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
ChaITSimpleLove5 天前
云原生性能对决:JDK21虚拟线程+GraalVM vs .NET10/11 技术栈深度对比
微服务·云原生·serverless·graalvm native·native aot·runtime async·.net11/java21