我是kubernetes的新手,需要在openshift平台上使用k8s confimap将springboot应用程序的属性文件外部化。我已将属性文件保存在git repo中,作为“greeter.message=Spring Bootmyapplication.properties已在库伯内特斯上挂载为卷!”并使用“oc create confimap myconfig--from-file=myapplication.properties”命令创建了confimap。我也可以使用“oc get confimap myconfig-o yaml”命令看到同样的情况:
data:
myapplication.properties: greeter.message=Spring Boot myapplication.properties has been mounted as volume on Kubernetes!
on Kubernetes!
kind: ConfigMap
metadata:
creationTimestamp: 2021-08-24T04:45:27Z
name: myconfig
namespace: mynamespace
resourceVersion: "53471"
selfLink: /api/v1/namespaces/default/configmaps/myconfig
uid: 73ca674c-8afc-71e1-9a8a-7da609902085
现在我有一个springboot rest控制器
@RestController
@Slf4j
public class GreeterController {
@Value("${greeter.message}")
private String greeterMessageFormat;
@GetMapping("/greet/{user}")
public String greet(@PathVariable("user") String user) {
return String.format(greeterMessageFormat);
}
}
最后,我对部署文件进行了更改,以创建和装载卷
spec:
containers:
volumeMounts:
- name: application-config
mountPath: "/etc/config"
readOnly: true
volumes:
- name: application-config
configMap:
name: myconfig
现在,当我尝试启动pod时,问题出现了,springboot应用程序无法启动,表明它在@value(“${greeter.message}”)中找不到${greeter.message}的任何值,因为我在应用程序src/main/resources/app中没有任何这样的属性。属性,如果我提供了一个,那么我的springboot应用程序将从src/main/resources/app中选择该属性。属性而不是configmap。
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'greeter.message' in value "${greeter.message}"
该值应该取自我创建的configmap。请帮帮我,我在哪里遗漏了什么。
我已经提到了这个https://developers.redhat.com/blog/2017/10/03/configuring-spring-boot-kubernetes-configmap#cm-作为相同的文件,并做了准确的。
提前谢谢。
试试吧
envFrom: ##Reference all key-value pairs of the sepcial-config ConfigMap.
- configMapRef:
name: myconfig
参考文献:
https://www.exoscale.com/syslog/configuration-management-kubernetes-spring-boot/https://www.alibabacloud.com/help/doc-detail/86556.htm
我有Kafka Streams java应用程序启动并运行。我试图使用KSQL创建简单的查询,并使用Kafka流来实现复杂的解决方案。我希望将KSQL和Kafka流作为Java应用程序运行。 我打算通过https://github.com/confluentinc/ksql/blob/master/ksqldb-examples/src/main/java/io/confluent/ksql/em
我已经为Postgresql启用了复制,并且正在使用PGPool进行负载平衡。 我在使用HikariCP甚至Apache DBCP连接到Postgres时遇到了问题。 在SpringBoot应用程序中有没有使用PGPool的方法? 请查找堆栈跟踪: 2018-08-10 10:20:19.124信息37879----[main]com.zaxxer.hikari.hikaridatasource:
我试图在SpringMVC中运行SpringBoot应用程序,在SpringMVCPOM中添加SpringBoot应用程序依赖项,并扫描SpringBoot包,但我面临以下问题
我在src/main/resources下创建了2个文件: 应用程序。属性 第一个具有从env变量中获取值的属性,而后者具有固定值。 根据这里的具体情况,我以这样的方式推出了Spring靴: 然而,不会产生任何影响,并且应用程序是局部的。属性似乎被忽略。 有什么提示吗?
我有以下用例: 我的应用程序无法处理的消息,可能是由于与网络等相关的一些间歇性问题,正在写入kafka主题。 我希望使用cron/scheduled任务定期读取这些消息,然后处理它们。 到目前为止,我已经在我的弹跳靴中使用了KafkaListener来满足我与kafka相关的需求,并且运行良好。 但是,我无法找到一种方法来间歇性地使用KafkaListener阅读消息。 Spring有没有办法做到
这是我使用SpringBoot的第一天,我试图理解体系结构,因此我开始构建一个hello world应用程序: 在我的pom.xml中,在maven-shade-plugin下,我将mainClass声明如下: 文件目标是src/main/java/com/demo/helloworld.java,该文件中的代码是: 我错过了什么?