k8s helm部署 metrics-server

发布于 2022-05-17  4 次阅读


metrics-server

从 v1.8 开始,资源使用情况的监控可以通过 Metrics API的形式获取,具体的组件为Metrics Server,用来替换之前的heapster,heapster从1.11开始逐渐被废弃。

Metrics-Server是集群核心监控数据的聚合器,从 Kubernetes1.8 开始,它作为一个 Deployment对象默认部署在由kube-up.sh脚本创建的集群中,如果是其他部署方式需要单独安装,或者咨询对应的云厂商。

准备

helm 安装

添加源
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

查找
helm search repo bitnami/metrics-server
[root@localhost ~]# helm search repo metrics-server
NAME                    CHART VERSION   APP VERSION DESCRIPTION                                       
bitnami/metrics-server  6.0.0           0.6.1       Metrics Server aggregates resource usage data, ...

部署

开启聚合层
vim /etc/kubernetes/manifests/kube-apiserver.yaml
添加
- --enable-aggregator-routing=true

编辑文件
cat <<EOF> my-values.yaml
image:
  registry: registry.cn-shanghai.aliyuncs.com
  repository: wanfei/metrics-server
  tag: 0.6.1-debian-10-r34
extraArgs:
  metric-resolution: 30s
  kubelet-preferred-address-types: InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
  kubelet-insecure-tls: false
apiService:
  create: true
EOF

安装
helm install metrics-server bitnami/metrics-server \
-f my-values.yaml \
--version 5.11.4

验证
[root@localhost ~]# kubectl get pods | grep metrics-server
metrics-server-86b4c798b-p7jwc   1/1     Running   0          11m

[root@localhost ~]# kubectl top no
NAME     CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
master   120m         6%     2224Mi          58%       
node-1   20m          1%     1041Mi          27%       
node-2   23m          1%     1045Mi          27% 

[root@localhost ~]# kubectl top pod
NAME                             CPU(cores)   MEMORY(bytes)   
metrics-server-86b4c798b-p7jwc   2m           20Mi     

列出指标

[root@localhost ~]# kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes" | jq .
{
  "kind": "NodeMetricsList",
  "apiVersion": "metrics.k8s.io/v1beta1",
  "metadata": {},
  "items": [
    {
      "metadata": {
        "name": "master",
        "creationTimestamp": "2022-05-17T03:50:16Z",
        "labels": {
          "beta.kubernetes.io/arch": "amd64",
          "beta.kubernetes.io/os": "linux",
          "kubernetes.io/arch": "amd64",
          "kubernetes.io/hostname": "master",
          "kubernetes.io/os": "linux",
          "node-role.kubernetes.io/master": ""
        }
      },
      "timestamp": "2022-05-17T03:49:47Z",
      "window": "30.024s",
      "usage": {
        "cpu": "117877491n",
        "memory": "2279004Ki"
      }
    },
    {
      "metadata": {
        "name": "node-1",
        "creationTimestamp": "2022-05-17T03:50:16Z",
        "labels": {
          "beta.kubernetes.io/arch": "amd64",
          "beta.kubernetes.io/os": "linux",
          "kubernetes.io/arch": "amd64",
          "kubernetes.io/hostname": "node-1",
          "kubernetes.io/os": "linux"
        }
      },
      "timestamp": "2022-05-17T03:49:47Z",
      "window": "30.021s",
      "usage": {
        "cpu": "19721978n",
        "memory": "1063964Ki"
      }
    },
    {
      "metadata": {
        "name": "node-2",
        "creationTimestamp": "2022-05-17T03:50:16Z",
        "labels": {
          "beta.kubernetes.io/arch": "amd64",
          "beta.kubernetes.io/os": "linux",
          "kubernetes.io/arch": "amd64",
          "kubernetes.io/hostname": "node-2",
          "kubernetes.io/os": "linux"
        }
      },
      "timestamp": "2022-05-17T03:49:48Z",
      "window": "30.02s",
      "usage": {
        "cpu": "19495698n",
        "memory": "1071160Ki"
      }
    }
  ]
}

卸载

helm uninstall metrics-server