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官网

相关推荐
张洛闻Eren2 小时前
Ansible【第一课】:Ansible介绍
运维·数据库·云原生·kubernetes·github·ansible
杰克尼3 小时前
Kubernetes
云原生·容器·kubernetes
张洛闻Eren4 小时前
Ansible【第二课】:实施 Ansible Playbook
linux·运维·服务器·云原生·kubernetes·k8s·ansible
东城绝神5 小时前
《Kubernetes部署篇:基于x86_64+aarch64架构CPU+containerd一键离线部署容器版K8S1.36.4高可用集群》
容器·架构·kubernetes
空空dream5 小时前
06 | Prometheus打通FastAPI云原生数据采集
云原生·prometheus·fastapi
池佳齐6 小时前
【软考高级架构师案例】容器化改造:Docker + K8s,如何用云原生视角重构传统多层架构?
docker·云原生·kubernetes
骑着蜗牛撵大象3277 小时前
云原生存储进阶:CSI 演进与 AI 工作负载的存储架构设计
人工智能·ai·云原生·kubernetes·csi·并行文件系统
kuroomi7 小时前
K8s集群升级与etcd备份恢复实战
容器·kubernetes·etcd
川石课堂软件测试7 小时前
自动化测试|持续集成Git使用详解
git·python·jmeter·mysql·ci/cd·容器·kubernetes
探索云原生8 小时前
KServe 工作流程:从 InferenceService 到 vLLM 服务
docker·ai·云原生·kubernetes·go