提前小结和上一篇的差异
要达到实时同步configmap变更的效果,需要将上一章的应用作以下改动:
- 增加以下两个jar依赖:
org.springframework.boot
spring-boot-actuator
org.springframework.boot
spring-boot-actuator-autoconfigure
- bootstrap.yml增加以下配置:
management:
endpoint:
restart:
enabled: true
health:
enabled: true
info:
enabled: true
- bootstrap.yml中的spring.cloud.kubernetes节点下增加子节点reload的配置,完整的bootstrap.yml内容如下:
management:
endpoint:
restart:
enabled: true
health:
enabled: true
info:
enabled: true
spring:
application:
name: springcloudk8sconfigdemo
profiles:
active: development
cloud:
kubernetes:
reload:
#自动更新配置的开关设置为打开
enabled: true
#更新配置信息的模式是主动拉取
mode: polling
#主动拉取的间隔时间是500毫秒
period: 500
config:
sources:
- name: ${spring.application.name}
namespace: default
- 在controller中增加path为/health的服务响应,在k8s部署时,健康和就绪探针会调用此接口,如果没有响应,pod就无法正常使用:
@GetMapping(“/health”)
public String health() {
return “success”;
}
以上就是开启自动更新的步骤了,您基于上一章的源码做上述更改即可,也可以随同本文一起重新开发一个全新应用,来实现获取configmap的配置,并且实时同步configmap的变化;
环境信息
本次实战的环境和版本信息如下:
-
操作系统:CentOS Linux release 7.6.1810
-
minikube:1.1.1
-
Java:1.8.0_191
-
Maven:3.6.0
-
fabric8-maven-plugin插件:3.5.37
-
spring-cloud-kubernetes:1.0.1.RELEASE
-
springboot:2.1.6.RELEASE
准备完毕,可以开始实战啦!
源码下载
如果您不打算写代码,也可以从GitHub上下载本次实战的源码,地址和链接信息如下表所示:
| 名称 | 链接 | 备注 |
| :-- | :-- | :-- |
| 项目主页 | https://github.com/zq2599/blog_demos | 该项目在GitHub上的主页 |
| git仓库地址(https) |