Kube eagle eks监控节点组实际资源使用率

Kube eagle eks监控节点组实际资源使用率

  • 简介
  • 官网参考
    • 背景
    • 前提
    • 方案1,给所有节点组增加标签
    • 方案2,修改源码(待测试)
  • 安装配置

简介

Kube eagle是一个prometheus exporter,暴露kubernetes pod资源请求、限制和它的实际使用的各种指标。可以通过它更好地查看kubernetes集群资源,以便优化资源分配。

Kube eagle eks 在Kube eagle的基础上有一个附加特性,即向所有度量添加nodegroup标签。这对于EKS部署很有用,并允许按节点组进行过滤。

官网参考

https://github.com/liorfranko/kube-eagle-eks
https://github.com/liorfranko/kube-eagle-eks-helm-chart

背景

通过监控各个节点组实际资源使用率,最终达到控制成本的目的。

前提

Note: Metrics-server is a prerequisite for Kube Eagle to work. Most managed Kubernetes clusters come with metrics-server installed by default - you can find the associated helm chart in the helm stable repo.

方案1,给所有节点组增加标签

通过eksctl创建的节点已经打了标签:alpha.eksctl.io/nodegroup-name=shared-t3-xlarge,但是识别不到,于是给node打 nodegroup-name 标签,就成功监控到数据了。官方提供的dashborad都是基于此标签出数据,务必打上。

场景1,自行管理的节点组(非托管)
修改存量的节点,或者新建节点组(建议,新增节点也需要手动添加)

# 添加标签
kubectl label nodes <node-name> <label-key>=<label-value>

kubectl label nodes ip-xx-xx-x-x.cn-northwest-1.compute.internal nodegroup-name=shared-t3-xlarge

kubectl label nodes <node-name> <label-key>=<label-value> --overwrite

通过eksctl修改节点组labels(托管节点组会动态更新到现有节点组)

eksctl set labels --cluster dev-cluster --nodegroup test-t3-small --labels "nodegroup-name=test-t3-small"

附:根据eksctl get nodegroup --cluster=dev到的信息拼接批量修改命令

cat a|awk '{print "eksctl set labels --cluster dev-cluster --nodegroup "$2" --labels \"nodegroup-name="$2"\""}' 

注:后续通过eksctl管理节点组在创建前都增加一个标签nodegroup-name: xxx,如下:

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: dev-cluster
  region: cn-northwest-1
  version: "1.20"
managedNodeGroups:
  - name: shared-t3-xlarge
    labels: { role: workers, nodegroup-name: shared-t3-xlarge}  

方案2,修改源码(待测试)

当然,如果不想打标签,可以试试修改下面这段代码,获取现有的节点组label:alpha.eksctl.io/nodegroup-name。
Kube eagle eks监控节点组实际资源使用率_第1张图片

安装配置

helm repo add kube-eagle https://raw.githubusercontent.com/liorfranko/kube-eagle-eks-helm-chart/master
helm repo update
helm install kube-eagle kube-eagle/kube-eagle

部署在default namespace,默认部署的是kube-eagle的镜像,临时改一下:quay.io/liorfranko/kube-eagle-eks:1.1.5

prometheus增加配置

- job_name: kube-eagle
  honor_labels: true
  honor_timestamps: true
  scrape_interval: 30s
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  follow_redirects: true
  static_configs:
  - targets:
    - kube-eagle.default.svc:8080

默认的grafana dashborad(id:15463)变量有点问题,变量取不到值,将如下几个变量,按照如下修改就可以用了
Kube eagle eks监控节点组实际资源使用率_第2张图片
Kube eagle eks监控节点组实际资源使用率_第3张图片
最终效果展示
Kube eagle eks监控节点组实际资源使用率_第4张图片

你可能感兴趣的:(K8S与容器,kubernetes,容器,aws)