kubernetes资源监控(Metrics-Server部署+Dashboard部署)

本文介绍了如何在Kubernetes集群中部署Metrics-Server和Dashboard以实现资源监控。Metrics-Server作为核心监控数据聚合器,提供Node和Pod的CPU、内存使用情况。文中详细阐述了Metrics-Server的部署过程,包括解决DNS解析和TLS认证问题。同时,还讲解了Dashboard的部署步骤,允许用户通过Web界面查看和管理集群资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Metrics-Server介绍

Metrics-Server是集群核心监控数据的聚合器,用来替换之前的heapster。
• 容器相关的 Metrics 主要来自于 kubelet 内置的 cAdvisor 服务,有了MetricsServer之后,用户就可以通过标准的 Kubernetes API 来访问到这些监控数据。
• Metrics API 只可以查询当前的度量数据,并不保存历史数据。
• Metrics API URI 为 /apis/metrics.k8s.io/,在 k8s.io/metrics 维护。
• 必须部署 metrics-server 才能使用该 API,metrics-server 通过调用 Kubelet Summary API 获取数据。

示例:
http://127.0.0.1:8001/apis/metrics.k8s.io/v1beta1/nodes
http://127.0.0.1:8001/apis/metrics.k8s.io/v1beta1/nodes/<node-name> http://127.0.0.1:8001/apis/metrics.k8s.io/v1beta1/namespace/<namespacename>/pods/<pod-name>

Metrics Server 并不是 kube-apiserver 的一部分,而是通过 Aggregator 这种插件机制,在独立部署的情况下同 kube-apiserver 一起统一对外服务的。
• kube-aggregator 其实就是一个根据 URL 选择具体的 API 后端的代理服务器。

在这里插入图片描述
Metrics-server属于Core metrics(核心指标),提供API metrics.k8s.io,仅提供Node和Pod的 CPU和内存使用情况。而其他Custom Metrics(自定义指标)由Prometheus等组件来完成。


2.Metrics-Server部署

官方参考:https://github.com/kubernetes-incubator/metrics-server

1.安装Metrics-Server

[kubeadm@server1 ms]$ wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml
--2020-07-04 23:31:40--  https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml
Resolving github.com (github.com)... 13.250.177.223
Connecting to github.com (github.com)|13.250.177.223|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/92132038/cf781b00-7752-11ea-9faf-0b397e7b8445?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200704%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200704T073144Z&X-Amz-Expires=300&X-Amz-Signature=cda43d47c725cd844bc7c7c10cf5c3e9d655fa5a6f61522c1fa67e8664df9449&X-Amz-SignedHeaders=host&actor_id=0&repo_id=92132038&response-content-disposition=attachment%3B%20filename%3Dcomponents.yaml&response-content-type=application%2Foctet-stream [following]
--2020-07-04 23:31:42--  https://github-production-release-asset-2e65be.s3.amazonaws.com/92132038/cf781b00-7752-11ea-9faf-0b397e7b8445?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200704%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200704T073144Z&X-Amz-Expires=300&X-Amz-Signature=cda43d47c725cd844bc7c7c10cf5c3e9d655fa5a6f61522c1fa67e8664df9449&X-Amz-SignedHeaders=host&actor_id=0&repo_id=92132038&response-content-disposition=attachment%3B%20filename%3Dcomponents.yaml&response-content-type=application%2Foctet-stream
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.216.113.203
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.113.203|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3335 (3.3K) [application/octet-stream]
Saving to: ‘components.yaml’
100%[==========================================================================<
<think>好的,我现在需要帮助用户了解如何在Kubernetes部署配置metrics-server。根据用户提供的引用内容,我需要先整理相关信息,并确保回答符合系统级指令中的要求,比如使用正确的中文回答、生成相关问题,以及正确引用参考文献。 首先,用户提到了几个引用,其中引用[1]提到了部署metrics-server的命令:kubectl create -f metrics-server/deploy/1.8+/。这可能涉及到直接从官方仓库部署。引用[2]详细说明了Metrics Server的作用,包括它是核心监控数据的聚合器,默认不部署,需要开启API Aggregator,并且依赖kubelet的Summary API。此外,安装前需要确保kube-apiserver的API Aggregator已启用,这点很重要,否则metrics-server可能无法正常工作。 引用[5]提到在部署metrics-server之前需要安装网络插件存储插件,这可能是因为某些环境需要这些组件才能正常运行metrics-server。不过用户的问题主要集中在metrics-server部署配置上,所以可能需要重点讲解如何解决常见问题,比如证书验证或网络问题。 接下来,我需要考虑用户可能的安装步骤。根据引用[1],直接使用官方提供的YAML文件部署是最简单的方法,但可能需要修改其中的参数,比如添加--kubelet-insecure-tls来跳过证书验证,尤其是在测试环境中。引用[2]提到需要开启API Aggregator,这可能涉及到修改kube-apiserver的配置,添加相关参数,但如果是通过kubeadm安装的集群,可能已经默认开启,用户需要确认这一点。 然后是关于配置的方面,比如如何调整metrics-server的采集间隔,资源限制,或者配置TLS。引用[4]中提到了创建ServiceAccountSecret,这可能与权限配置相关,但metrics-server可能需要特定的RBAC权限,所以需要确保部署文件包含正确的ClusterRoleClusterRoleBinding。 监控部分,部署完成后,用户可能需要使用kubectl top命令来查看资源使用情况,或者通过Kubernetes Dashboard集成,如引用[2]中提到的Dashboard依赖Metrics Server的数据。 常见问题方面,用户可能会遇到metrics-server无法启动,或者无法获取指标的问题。这时候需要检查日志,查看是否有证书错误,或者网络策略是否阻止了metrics-server与kubelet的通信。引用[3]提到集群版本是v1.20.15,可能需要确认metrics-server的版本是否兼容该Kubernetes版本。 最后,生成相关问题时,需要考虑用户可能进一步想了解的内容,比如如何集成到监控系统,如何进行高级配置,或者如何验证metrics-server是否正常工作。 总结回答结构:安装部署步骤、关键配置说明、监控方法、常见问题处理,然后生成相关问题。同时,确保所有引用正确标注,比如开启API Aggregator的部分来自引用[2],部署命令来自引用[1]等。需要注意使用正确的LaTeX格式,比如行内公式用$...$,独立公式用$$...$$,但在这个回答中可能数学公式较少,主要关注代码块配置示例。</think>### Metrics-Server部署与配置 #### 1. **安装部署** Metrics-ServerKubernetes 集群的核心监控组件,用于聚合资源使用指标(如 CPU、内存)。以下是部署步骤: **步骤 1:启用 API Aggregator** 确保 `kube-apiserver` 已启用 API Aggregator(默认情况下,kubeadm 部署的集群可能已开启)[^2]。检查参数是否包含: ```bash --enable-aggregator-routing=true ``` **步骤 2:部署 Metrics-Server** 使用官方提供的 YAML 文件部署(需适配 Kubernetes 版本): ```bash kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml ``` 若需跳过证书验证(测试环境),在部署文件中添加以下参数到容器命令: ```yaml command: - --kubelet-insecure-tls ``` #### 2. **关键配置说明** - **资源限制**:调整 Metrics-Server资源请求限制,防止资源不足: ```yaml resources: requests: cpu: 100m memory: 200Mi ``` - **采集间隔**:默认采集间隔为 60 秒,可通过 `--metric-resolution` 参数调整。 - **网络策略**:确保 Metrics-Server 可以访问各节点的 `kubelet`(默认端口 10250)。 #### 3. **监控验证** 部署完成后,验证功能是否正常: ```bash kubectl top node # 查看节点资源使用 kubectl top pod -n kube-system # 查看 Pod 资源使用 ``` 若输出指标数据,则说明部署成功。 #### 4. **常见问题处理** - **指标无法获取**:检查 Metrics-Server 日志: ```bash kubectl logs -n kube-system metrics-server-xxxxxx ``` 常见错误包括证书不匹配或网络不通,可通过 `--kubelet-insecure-tls` 或调整网络策略解决。 - **版本兼容性**:确保 Metrics-Server 版本与 Kubernetes 兼容(例如 v1.20.x 集群建议使用 Metrics-Server v0.5+)[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值