[kubernetes]安装metrics-server

打印 上一主题 下一主题

主题 904|帖子 904|积分 2712

前言

metrics server为Kubernetes自动伸缩提供一个容器资源度量源。metrics-server 从 kubelet 中获取资源指标,并通过 Metrics API 在 Kubernetes API 服务器中公开它们,以供 HPA 和 VPA 使用。
之前已经用k8s的二进制文件搭建了一套集群环境,搭建步骤见:二进制部署k8s集群-基于containerd。现需要在这个集群环境内部署Metrics-Server,用于配置应用自动伸缩。
集群环境:

  • 主机:Debian 11
  • Kubernetes版本:1.26.6
步骤


  • 获取yaml文件。
  1. wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml -O metrics-server.yaml
复制代码

  • 编辑yaml文件。之前部署集群用的自签名证书,metrics-server直接请求kubelet接口会证书校验失败,因此deployment中增加- --kubelet-insecure-tls参数。另外镜像原先在registry.k8s.io,国内下载不方便,下面的配置中修改成了国内镜像仓库地址。内网环境中可以先下载,然后再推到内网镜像仓库,镜像也改成内网镜像地址。
  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4.   labels:
  5.     k8s-app: metrics-server
  6.   name: metrics-server
  7.   namespace: kube-system
  8. spec:
  9.   # ...
  10.   template:
  11.           spec:
  12.       containers:
  13.       - args:
  14.         - --cert-dir=/tmp
  15.         - --secure-port=4443
  16.         - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
  17.         - --kubelet-use-node-status-port
  18.         - --metric-resolution=15s
  19.         - --kubelet-insecure-tls
  20.         image: registry.cn-hangzhou.aliyuncs.com/rainux/metrics-server:v0.6.4
复制代码

  • 发布
  1. kubectl apply -f metrics-server.yaml
复制代码

  • 查看是否在运行
  1. kubectl get pods -n kube-system | grep metrics
复制代码

  • 获取集群的指标数据
  1. kubectl get --raw /apis/metrics.k8s.io/v1beta1 | python3 -m json.tool
复制代码
根据输出可见,集群提供nodes和pods的资源指标。
  1. {
  2.     "kind": "APIResourceList",
  3.     "apiVersion": "v1",
  4.     "groupVersion": "metrics.k8s.io/v1beta1",
  5.     "resources": [
  6.         {
  7.             "name": "nodes",
  8.             "singularName": "",
  9.             "namespaced": false,
  10.             "kind": "NodeMetrics",
  11.             "verbs": [
  12.                 "get",
  13.                 "list"
  14.             ]
  15.         },
  16.         {
  17.             "name": "pods",
  18.             "singularName": "",
  19.             "namespaced": true,
  20.             "kind": "PodMetrics",
  21.             "verbs": [
  22.                 "get",
  23.                 "list"
  24.             ]
  25.         }
  26.     ]
  27. }
复制代码

  • 测试
  1. kubectl top nodes
复制代码
top命令

kubectl top命令用来查看node节点和pod的资源使用情况。
  1. # 查看 top 命令的帮助
  2. kubectl top --help
  3. # 查看node节点的资源使用情况
  4. kubectl top node
  5. # 查看pod的资源使用情况
  6. kubectl top pod
  7. # 查看所有命名空间的pod资源使用情况
  8. kubectl top pod -A
复制代码
参考


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

盛世宏图

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表