没有合适的资源?快使用搜索试试~ 我知道了~
首页Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置的教程
Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置的教程
1.3k 浏览量
更新于2023-05-28
评论
收藏 199KB PDF 举报
主要介绍了Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
资源详情
资源评论
资源推荐

Springboot整合整合Spring Cloud Kubernetes读取读取ConfigMap支持自动刷新配置的教程支持自动刷新配置的教程
主要介绍了Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的
朋友可以参考下
1 前言前言
欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章!
Docker & Kubernetes相关文章:容器技术
之前介绍了Spring Cloud Config 的用法,但对于Kubernetes应用,可能会需要读取ConfigMap的配置,我们看看Springboot是如何方便地读取ConfigMap和Secret。
2 整合整合Spring Cloud Kubenetes
Spring Cloud Kubernetes提供了Spring Cloud应用与Kubernetes服务关联,我们也可以自己写Java程序来获取Kubernetes的特性,但Spring又为我们做了。
2.1 项目代码
引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-kubernetes-config</artifactId>
</dependency>
只需要Springboot Web和Spring Cloud Kubernetes Config 即可,很简单。
Springboot启动类:
@SpringBootApplication
public class ConfigMapMain {
public static void main(String[] args) {
SpringApplication.run(ConfigMapMain.class, args);
}
}
准备一个EndPoint来展示所读到的配置信息:
@RestController
public class PkslowController {
@Value("${pkslow.age:0}")
private Integer age;
@Value("${pkslow.email:null}")
private String email;
@Value("${pkslow.webSite:null}")
private String webSite;
@Value("${pkslow.password:null}")
private String password;
@GetMapping("/pkslow")
public Map<String, String> getConfig() {
Map<String, String> map = new HashMap<>();
map.put("age", age.toString());
map.put("email", email);
map.put("webSite", webSite);
map.put("password", password);
return map;
}
}
默认是为空的,password是从Secret读取,其它从ConfigMap读取。
应用的配置文件如下:
server:
port: 8080
spring:
application:
name: spring-cloud-kubernetes-configmap
cloud:
kubernetes:
config:
name: spring-cloud-kubernetes-configmap
这里的spring.cloud.kubernetes.config.name是重点,后续要通过它来找ConfigMap。
加密密码:
$ echo -n "pkslow-pass" | base64
cGtzbG93LXBhc3M=
创建Kubernetes Secret:
kind: Secret
apiVersion: v1
metadata:
name: spring-cloud-kubernetes-secret
namespace: default
data:
pkslow.password: cGtzbG93LXBhc3M=
type: Opaque
ConfigMap的内容如下:
kind: ConfigMap
apiVersion: v1
metadata:
name: spring-cloud-kubernetes-configmap
namespace: default
labels:
app: scdf-server
data:
application.yaml: |-
pkslow:
age: 19
email: admin@pkslow.com
webSite: www.pkslow.com
要注意的是,这里的名字与前面配置的是一致的,都是spring-cloud-kubernetes-configmap。
接着完成Dockerfile和K8s部署文件就可以了。注意要将Secret的值映射到环境变量:


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0