浏览器访问地址::31646/hello ,得到响应如下图,可见已经从configmap取得了配置文件,并且加载成功:
前面的实战没有指定springboot工程的profile,接下来指定profile为development,看能否加载到配置文件中指定的配置,如下图红框所示:
修改项目的src\main\resources路径下的bootstrap.yml文件,增加配置项spring.profiles.active,修改后的完整内容如下:
spring: application: name: springcloudk8sconfigdemo profiles: active: development cloud: kubernetes: config: sources: - name: ${spring.application.name} namespace: default在springcloudk8sconfigdemo项目的pom.xml文件所在目录,执行以下命令,即可编译构建部署全部完成:
mvn clean install fabric8:deploy -Dfabric8.generator.from=fabric8/java-jboss-openjdk8-jdk -Pkubernetes如果您的环境也是minikube,可以执行以下命令查看服务地址:
minikube service springcloudk8sconfigdemo --url得到服务地址是::30659
浏览器访问地址::30659/hello ,得到响应如下图,可见已经从configmap取得了指定profile的配置文件,并且加载成功:
至此,spring-cloud-kubernetes与k8s的configmap的实战就完成了,我们可以发现借助spring-cloud-kubernetes-config的神奇能力,曾经使用SpringCloud Config来配置的应用几乎不用修改代码,仅仅调整了配置和依赖,就能顺利迁移到kubernetes之上,直接使用原生的配置服务,并且SpringCloud Config Server也可以不用在kubernetes上部署了,再次感受到SpringCloud设计的前瞻性。 一点遗憾
虽然我们的应用已经成功从configmap取得配置信息,但遗憾的是,configmap的配置信息被修改后,这些修改是无法实时同步到我们的应用的,只能重启应用来重现获取配置,为了解决这个问题,请参考本系列的下一篇 《spring-cloud-kubernetes自动同步k8s的configmap更新》
欢迎关注我的公众号:程序员欣宸