k8s笔记26--快速实现prometheus监控harbor

k8s笔记26--快速实现prometheus监控harbor

简介

harbor是当前最流行的开源容器镜像仓库项目,被大量IT团队广泛应用于生产、测试环境的项目中。本文基于Harbor、Prometheus、Grafana介绍快速实现监控harbor的方法和步骤。

采集指标&配置grafana面板

本文前置条件需要安装harbor、prometheus、grafana。harbor可以通过docker-compose的方式快速安装,安装方式可以参考 docker笔记10--安装与使用harbor 。prometheus 可以单独安装,也可以通过开源组件来安装,例如通过 kubesphere来安装(笔者直接使用这种方式)。grafana安装方式可以参考 k8s笔记12--grafana的配置和常见使用

安装完成基础组件/系统后,我们可以参考如下采集指标、配置grafana面板的步骤完成harbor的监控。

采集指标

较新版本的harbor已经提供了metrics接口,即 ip:9090/metrics。能正常获取harbor指标后,我们只需要在集群中新建一个svc和 serviceMonitor,然后prometheus就能自动采集到harbor的指标。

主要配置案例yaml如下:

yaml 复制代码
1) 新建Endpoints
# vim harbor-ep.yaml
apiVersion: v1
kind: Endpoints
metadata:
  labels:
    app: harbor
  name: harbor
  namespace: devops-test
subsets:
- addresses:
  - ip: 172.16.xx.xx
  ports:
  - name: metrics
    port: 9090
    protocol: TCP

2) 新建Service
# vim harbor-svc.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: harbor
  name: harbor
  namespace: devops-test
spec:
  internalTrafficPolicy: Cluster
  ports:
  - name: metrics
    port: 9090
    protocol: TCP
    targetPort: 9090
  type: ClusterIP

3) 新建 serviceMonitor
# vim harbor-servicemonitor.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  annotations: {}
  labels:
    app: harbor-exporter
  name: harbor
  namespace: devops-test
spec:
  endpoints:
  - interval: 30s
    path: /metrics
    port: http
    scheme: http
  jobLabel: harbor-app
  namespaceSelector:
    matchNames:
    - devops-test
  selector:
    matchLabels:
      app: harbor-exporter

新建serviceMonitor后就可以在prometheus的targets中看到监控实例,也可以在promethes中搜到harbor相关的指标,如下图

配置grafana面板

参考 grafana 官方dashboard,笔者结合 ID: 16686 和 ID: 14075 基本就可以快速作出一个想要的harbor监控面板了。通过该面板可以直观看到harbor实例状态、整体存储量、各个项目核心信息(仓库 数、镜像容量、拉取数等)。

效果如下:

至此,我们已经可以通过prometheus和grafana快速实现对harbor的监控了。通过监控发现harbor 仓库基础信息和存储量,对于存储量很大的project,我们可以按需在harbor中配置每天的清理测量(例如保留镜像最近10次推送的tag)。

说明

Prometheus监控Harbor实战
kubesphere官网--面向云原生应用的容器混合云
harbor官网
grafana官网

相关推荐
软件测试-阿涛9 小时前
【性能测试】Jmeter+Grafana+InfluxDB+Prometheus Windows安装部署教程
测试工具·jmeter·性能优化·压力测试·grafana·prometheus
终端行者12 小时前
k8s之Ingress服务接入控制器
云原生·容器·kubernetes
学Linux的语莫17 小时前
k8s的nodeport和ingress
网络·rpc·kubernetes
aashuii1 天前
k8s通过NUMA亲和分配GPU和VF接口
云原生·容器·kubernetes
Most661 天前
kubesphere安装使用
kubernetes
Kentos(acoustic ver.)1 天前
云原生 —— K8s 容器编排系统
云原生·容器·kubernetes·云计算·k8s
哈里谢顿1 天前
Kubernetes 简介
kubernetes
__Smile°2 天前
k8s-MongoDB 副本集部署
云原生·容器·kubernetes
Jy_06222 天前
k8s 中的 deployment,statefulset,daemonset 控制器的区别
云原生·容器·kubernetes
果子⌂2 天前
Kubernetes 服务发布进阶
linux·运维·服务器·云原生·容器·kubernetes·云计算