K8S 安装 Metric-server

本文介绍了如何在Kubernetes集群上安装metrics-server,以实现Pod和Node的资源监控。首先,解释了metrics-server的作用,包括其作为ResourceMetricsAPI的实现。接着,提供了下载yaml部署文件的步骤,并指导修改启动参数以适应国内环境。最后,展示了安装后的监控效果,包括kubectltopnodes和kubectltoppods的使用示例。


1. Metric 简介

  metrics-server 可实现 Kubernetes 的 Resource Metrics API(metrics.k8s.io),通过此 API 可以查询 Pod 与 Node 的部分监控指标,Pod 的监控指标用于 HPA、VPA 与 kubectl top pods -n ns 命令,而 Node 指标目前只用于 kubectl top nodes 命令。容器服务某些 k8s 发行版自带 Resource Metrics API 的实现,指向 hpa-metrics-server,且目前提供 Pod 的监控指标。

  将 metrics-server 安装到集群后,可以通过 kubectl top nodes 获取节点的监控概览,以替换 Resource Metrics API 的实现。容器服务控制台创建的 HPA 不会用到 Resource Metrics,仅使用 Custom Metrics,因此安装 metrics-server 不会影响在 Kubernetes 控制台创建的 HPA。本文将介绍如何在 Kubernetes 上安装 metrics-server。

2. 下载 yaml 部署文件

下载 metrics-server 官方的部署 yaml:

wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.5.0/components.yaml

修改 metrics-server 启动参数:

1️⃣metrics-server 会请求每台节点的 kubelet 接口来获取监控数据,接口通过 HTTPS 暴露,但 Kubernetes 节点的 kubelet 使用的是自签证书,若 metrics-server 直接请求 kubelet 接口,将产生证书校验失败的错误,因此需要在 components.yaml 文件中加上 --kubelet-insecure-tls 启动参数。
2️⃣由于 metrics-server 官方镜像仓库存储在 k8s.gcr.io ,国内可能无法直接拉取,您可以自行同步到 CCR 或使用已同步的镜像 ccr.ccs.tencentyun.com/mirrors/metrics-server:v0.5.0

# 修改两处如下
containers:
- args:
  - --cert-dir=/tmp
  - --secure-port=443
  - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
  - --kubelet-use-node-status-port
  - --metric-resolution=15s
  - --kubelet-insecure-tls # 加上该启动参数
  image: ccr.ccs.tencentyun.com/mirrors/metrics-server:v0.5.0 # 国内集群,请替换成这个镜像

下载我修改好的 yaml:

wget http://49.232.8.65/yaml/components.yaml

3. 安装使用

执行安装

[root@master ~]#kubectl apply -f components.yaml 
......
[root@master ~]#kubectl get pod -n kube-system | grep metrics-server
metrics-server-c44f75469-rfllg   1/1     Running   0               35s

监控 node

[root@master ~]#kubectl top nodes
NAME     CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
master   247m         4%     3089Mi          54%       
node01   63m          1%     1932Mi          33%       
node02   59m          1%     1889Mi          33%  

监控 pod

[root@master ~]#kubectl top pods -n kube-system
NAME                             CPU(cores)   MEMORY(bytes)   
coredns-7f6cbbb7b8-4t5q5         3m           19Mi            
coredns-7f6cbbb7b8-d22f2         3m           18Mi            
etcd-master                      30m          97Mi            
kube-apiserver-master            78m          287Mi           
kube-controller-manager-master   39m          64Mi            
kube-flannel-ds-7d9mh            4m           19Mi            
kube-flannel-ds-vjxwx            4m           22Mi            
kube-flannel-ds-wp9pz            3m           21Mi            
kube-proxy-5mwtb                 1m           16Mi            
kube-proxy-5tsm4                 1m           18Mi            
kube-proxy-vdjkv                 1m           17Mi            
kube-scheduler-master            6m           26Mi            
metrics-server-c44f75469-rfllg   5m           18Mi            

参考:
Kubernetes 上安装 Metrics-Server
Kubernetes 使用 metric-server 让 HPA 弹性伸缩运行


<think>好的,我现在需要帮助用户解决KubernetesMetrics Server的部署与配置问题。首先,我得回忆一下用户之前的引用内容,里面有提到下载components.yaml文件,以及Metrics Server的作用是收集指标供HPA和VPA使用。用户可能已经尝试过部署,但遇到了问题,或者想了解正确的步骤。 首先,我应该按照常规部署流程来整理步骤。用户提到的引用[1]中有下载部署文件的命令,所以第一步应该是下载官方提供的YAML文件。接下来,可能需要修改这个文件,特别是镜像地址,因为国内访问可能有问题,换成国内镜像源会更顺利。引用[3]提到DNS配置,但这里可能不直接相关,不过需要注意服务发现是否正确。 然后,部署的时候需要应用修改后的YAML,这应该用kubectl apply命令。部署完成后,需要验证是否成功,比如检查Pod状态和日志。如果遇到问题,比如镜像拉取失败或者证书问题,用户可能需要调整配置,比如在容器参数里添加--kubelet-insecure-tls,或者检查网络策略是否允许Metrics Server访问kubelet。 接下来,用户可能想知道如何测试Metrics Server是否正常工作,比如使用kubectl top命令。如果这一步失败,可能需要进一步排查,比如检查APIService是否注册正确,或者Metrics API是否可用。 最后,考虑生成相关问题,帮助用户深入理解,比如如何与HPA集成,或者常见问题解决。需要确保回答结构清晰,步骤详细,同时引用之前的参考内容,但不要生硬地插入引用,而是自然地融入步骤说明中。还要注意LaTeX格式的正确使用,虽然这个问题可能涉及的不多,但如果有数学表达式的话要按规则处理。确保语言口语化,避免技术术语堆砌,让用户容易跟随步骤操作。</think>### Kubernetes Metrics Server 部署与配置教程 #### 一、Metrics Server 核心作用 Metrics ServerKubernetes 集群资源监控的核心组件,主要功能包括: 1. 收集节点/Pod 的 CPU/Memory 使用量[^2] 2. 通过 Metrics API 提供资源指标 3. 支持 HPA/VPA 自动扩缩容决策[^2] #### 二、标准部署流程 1. **下载官方部署文件**: ```bash wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml -O metrics-server-components.yaml ``` [^1] 2. **修改镜像配置(国内加速)**: ```yaml spec: template: spec: containers: - name: metrics-server image: registry.aliyuncs.com/google_containers/metrics-server:v0.6.3 ``` 3. **添加关键参数配置**: ```yaml args: - --kubelet-insecure-tls # 跳过证书验证(测试环境使用) - --kubelet-preferred-address-types=InternalIP # 优先使用节点内网IP ``` 4. **应用配置文件**: ```bash kubectl apply -f metrics-server-components.yaml ``` #### 三、部署验证 1. 检查 Pod 状态: ```bash kubectl get pods -n kube-system | grep metrics-server ``` 应显示 `Running` 状态且 `READY` 为 1/1 2. 测试指标获取: ```bash kubectl top nodes kubectl top pods -A ``` #### 四、常见问题排查 1. **镜像拉取失败**: ```bash # 查看具体错误信息 kubectl describe pod/metrics-server-xxxx -n kube-system ``` 解决方案:手动拉取镜像后 tag 重命名 2. **X509 证书错误**: ```bash # 在部署文件中添加 args: - --kubelet-insecure-tls ``` 3. **网络连通性问题**: 检查防火墙是否开放 10250 端口(kubelet 指标端口) #### 五、高级配置示例 ```yaml apiVersion: apps/v1 kind: Deployment spec: template: spec: containers: - name: metrics-server args: - --cert-dir=/tmp - --secure-port=4443 - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname - --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.pem ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值