Springboot整合春云Kubernetes读取ConfigMap支持自动刷新配置的教程

  

<强>

  

欢迎访问南瓜慢说www.pkslow.com获取更多精彩文章!

  

码头工人,Kubernetes相关文章:容器技术

  

之前介绍了<代码>春云配置> Kubernetes> ConfigMap> Springboot> ConfigMap 和<代码>秘密>   

  

春云Kubernetes提供了<代码>春云> Kubernetes 服务关联,我们也可以自己写Java代码 <代码>程序来获取<代码> Kubernetes> 春季>   

2.1项目代码

  

引入依赖:

        & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-web   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.springframework.cloud   & lt; artifactId> spring-cloud-starter-kubernetes-config   & lt;/dependency>      

只需要<代码> Springboot Web代码和<代码>春云Kubernetes配置>   

<代码> Springboot 启动类:

        @SpringBootApplication   公开课ConfigMapMain {   公共静态void main (String [] args) {   SpringApplication.run (ConfigMapMain.class, args);   }   }      <代码>

准备一个端点>         @RestController   公开课PkslowController {   @ value (" $ {pkslow.age: 0} ")   私人整数年龄;      @ value (" $ {pkslow.email:零}")   私人字符串邮件;      @ value (" $ {pkslow.webSite:零}")   私人字符串网站;      @ value (" $ {pkslow.password:零}")   私人密码字符串;      @GetMapping ("/pkslow”)   公共Map<字符串,String>getConfig () {   String> Map<字符串;地图=new HashMap<在();   地图。把(“时代”,age.toString ());   地图。把(“电子邮件”,电子邮件);   地图。把网站(“网站”);   地图。(“密码”,密码);   返回地图;   }   }      

默认是为空的,<代码> 是密码从<代码> 读秘密取,其它从<代码> ConfigMap>   

应用的配置文件如下:

        服务器:   端口:8080   春天:   应用程序:   名称:spring-cloud-kubernetes-configmap   云:   kubernetes:   配置:   名称:spring-cloud-kubernetes-configmap      

这里的<代码> spring.cloud.kubernetes.config.name> ConfigMap>   

加密密码:

        美元echo - n“pkslow-pass”| base64   cGtzbG93LXBhc3M=      

创建<代码> Kubernetes秘密>         :秘密   apiVersion: v1   元数据:   名称:spring-cloud-kubernetes-secret   名称空间:默认   数据:   pkslow。密码:cGtzbG93LXBhc3M=类型:不透明的      

<代码> ConfigMap>         :ConfigMap   apiVersion: v1   元数据:   名称:spring-cloud-kubernetes-configmap   名称空间:默认   标签:   应用:scdf-server   数据:   应用程序。yaml: | -   pkslow:   年龄:19   电子邮件:admin@pkslow.com   网站:www.pkslow.com      

要注意的是,这里的名字与前面配置的是一致的,都是<代码> spring-cloud-kubernetes-configmap>   

接着完成<代码> Dockerfile 和<代码> k8> 的值映射到环境变量:

        env:   ——名称:PKSLOW_PASSWORD   valueFrom:   secretKeyRef:   名称:spring-cloud-kubernetes-secret   关键:pkslow.password      

2.2启动与测试

  

应用会在启动时就去<代码> Kubernetes 找相应的<代码> ConfigMap 和<代码>秘密>   

  

  

& # 160;/\ \/___”_ _ _ _ _ _ _ # 160;__ _ \ \ \ \

  

(() \ ___ | ' _ | _ | | ' _ \/_ | \ \ \ \

  

& # 160; \ \/& # 160;___)| | _)| | | | | | | (_ | | & # 160;))))

  

& # 160;& # 160;__ | | .__ | _ | | _ | _ | | _ \ _ |////

Springboot整合春云Kubernetes读取ConfigMap支持自动刷新配置的教程