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

简介

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。
在这里插入图片描述

安装配置

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)变量有点问题,变量取不到值,将如下几个变量,按照如下修改就可以用了
在这里插入图片描述
在这里插入图片描述
最终效果展示
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值