news 2026/5/8 10:14:46

Spring Boot Admin与Kubernetes集成监控

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot Admin与Kubernetes集成监控

摘要

本文深入探讨Spring Boot Admin与Kubernetes的集成监控方案,包括容器化部署、服务发现、资源监控等关键技术点。通过详细的技术解析和实践示例,帮助开发者构建基于Kubernetes的微服务监控体系。

1. 引言

Kubernetes作为容器编排的标准,与Spring Boot Admin结合可以实现云原生的微服务监控。本文将详细介绍如何在Kubernetes环境中部署和监控Spring Boot应用。

2. Kubernetes监控架构

2.1 架构组件

Kubernetes监控架构包含以下组件:

  • Prometheus:指标收集和存储
  • Grafana:可视化展示
  • Spring Boot Admin:应用监控
  • Service Mesh:服务间通信监控
  • Kubernetes API:集群状态监控

2.2 集成方式

  • 服务发现:通过Kubernetes API发现服务
  • 指标收集:从Pod中收集应用指标
  • 日志收集:统一日志管理
  • 告警通知:集成告警系统

3. 容器化部署

3.1 Dockerfile配置

FROM openjdk:8-jre-alpine # 创建应用目录 RUN addgroup -S spring && adduser -S spring -G spring USER spring:spring WORKDIR /app # 复制应用文件 COPY --chown=spring:spring target/admin-server.jar app.jar # 暴露端口 EXPOSE 8022 # 启动命令 ENTRYPOINT ["java", "-jar", "app.jar", \ "--spring.profiles.active=kubernetes", \ "--server.port=8022"]

3.2 Kubernetes部署配置

# k8s-deployment.yamlapiVersion:apps/v1kind:Deploymentmetadata:name:admin-serverlabels:app:admin-serverspec:replicas:2selector:matchLabels:app:admin-servertemplate:metadata:labels:app:admin-serverspec:containers:-name:admin-serverimage:admin-server:latestports:-containerPort:8022env:-name:SERVER_PORTvalue:"8022"-name:SPRING_PROFILES_ACTIVEvalue:"kubernetes"-name:NACOS_SERVER_ADDRvalue:"nacos-headless:8848"livenessProbe:httpGet:path:/actuator/healthport:8022initialDelaySeconds:60periodSeconds:30readinessProbe:httpGet:path:/actuator/healthport:8022initialDelaySeconds:30periodSeconds:10resources:requests:memory:"512Mi"cpu:"250m"limits:memory:"1Gi"cpu:"500m"

3.3 服务配置

# k8s-service.yamlapiVersion:v1kind:Servicemetadata:name:admin-server-servicelabels:app:admin-serverspec:selector:app:admin-serverports:-protocol:TCPport:80targetPort:8022type:LoadBalancer---apiVersion:v1kind:Servicemetadata:name:admin-server-headlesslabels:app:admin-serverspec:selector:app:admin-serverports:-protocol:TCPport:8022targetPort:8022clusterIP:None# Headless service for DNS-based discovery

4. Kubernetes服务发现

4.1 Kubernetes服务发现配置

packagecom.springboot.admin.k8s.discovery;importorg.springframework.boot.autoconfigure.condition.ConditionalOnProperty;importorg.springframework.cloud.client.discovery.EnableDiscoveryClient;importorg.springframework.context.annotation.Configuration;@Configuration@ConditionalOnProperty(name="spring.cloud.kubernetes.enabled",havingValue="true")@EnableDiscoveryClientpublicclassKubernetesDiscoveryConfig{// Kubernetes服务发现配置}

4.2 自定义Kubernetes服务发现

packagecom.springboot.admin.k8s.discovery;importio.kubernetes.client.openapi.ApiClient;importio.kubernetes.client.openapi.apis.CoreV1Api;importio.kubernetes.client.util.Config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;@ConfigurationpublicclassKubernetesClientConfig{@BeanpublicApiClientapiClient()throwsjava.io.IOException{returnConfig.defaultClient();}@BeanpublicCoreV1ApicoreV1Api(ApiClientapiClient){returnnewCoreV1Api(apiClient);}}

5. 指标收集与监控

5.1 Kubernetes监控配置

# application-k8s.ymlserver:port:8022spring:application:name:admin-server-k8scloud:kubernetes:enabled:truereload:enabled:truemode:eventconfig:enable-api:truediscovery:enabled:truesecrets:enable-api:true# Spring Boot Admin配置boot:admin:server:ui:title:'Kubernetes监控平台'brand:'<img src="assets/img/icon-spring-boot-admin.svg"><span>Kubernetes监控平台</span>'# Kubernetes特定配置kubernetes:enabled:truenamespace:defaultlabels:app:spring-boot-appannotations:prometheus.io/scrape:"true"prometheus.io/port:"8022"# Actuator配置management:endpoints:web:exposure:include:health,info,metrics,prometheusbase-path:/actuatorendpoint:health:show-details:alwaysprometheus:enabled:truemetrics:export:prometheus:enabled:true# Kubernetes客户端配置kubernetes:client:namespace:defaultservice-account:token-file:/var/run/secrets/kubernetes.io/serviceaccount/tokenca-cert-file:/var/run/secrets/kubernetes.io/serviceaccount/ca.crtapi-version:v1master-url:https://kubernetes.default.svc.cluster.local
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 8:19:30

Python高效计算斐波那契数列

实现功能&#xff1a;计算斐波那契数列的第n项以下是用 Python 编写的递归方法实现斐波那契数列&#xff1a;def fibonacci(n):if n < 0:return "输入必须为正整数"elif n 1:return 0elif n 2:return 1else:return fibonacci(n - 1) fibonacci(n - 2)# 示例调用…

作者头像 李华
网站建设 2026/5/1 9:58:03

【Unity】实现Quad瓦片(MeshRenderer)渲染图集图片

使用Mesh Renderer渲染图集图片&#xff0c;并保证图片不变形效果&#xff08;采用GPU Instancing优化合批&#xff09;创建一个Quad物体&#xff0c;材质Shader如下&#xff0c;将图集图片通过SpriteAtlas加载出来得到Sprite对象进行后面的传参操作即可进行渲染出图集图片。Te…

作者头像 李华
网站建设 2026/5/3 6:07:57

深度学习毕设项目:基于python-cnn深度学习的罗马数据集训练识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/5/4 6:53:05

计算机深度学习毕设实战-基于人工智能python深度学习的道路坑洼识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/5/4 8:26:13

FPGA应用开发和仿真【3.3】

7.1.4 离散量化信号的信噪比 不失一般性,考虑一个幅度为1、频率为1的正弦信号a(t)=sin(2πt),经过采样周期Ts的采样离散化之后,如果被DAC以零阶保持特性输出,将得到信号: 如果还经过分辨力δ的量化,取最接近的量化阶梯,将得到信号: 其中 符号表示取最接近自变量的…

作者头像 李华