我使用Micronaut 3.2.3和Kubernetes集成,从配置映射和机密中注入配置值。
依赖:
implementation("io.micronaut.kubernetes:micronaut-kubernetes-client")
implementation("io.micronaut.kubernetes:micronaut-kubernetes-discovery-client")
bootstrap.yml
micronaut:
application:
name: ingestor
config-client:
enabled: true
kubernetes:
client:
config-maps:
enabled: true
includes:
- application
- ingestor
secrets:
enabled: true
includes:
- application
- ingestor
如您所见,应用程序配置图包括kafka.brokers值:
kubectl get configmaps application -o yaml
apiVersion: v1
data:
application.yml: |
kafka.brokers: xxx
kubectl get configmaps ingestor -o yaml
apiVersion: v1
data:
application.yml: |
prop1: value1
我添加了一个简单的单例类,用于检查是否可以注入项目:
@Singleton
class SomeConfiguration(@Value("\${kafka.brokers}") private val kafkaBrokers: String) {
init {
println(kafkaBrokers)
}
}
日志跟踪似乎表明这些配置映射已被正确访问:
15:59:24.206 [OkHttp https://10.222.0.1/...] - - DEBUG i.m.k.c.KubernetesConfigurationClient - Adding config map with name application
15:59:24.218 [OkHttp https://10.222.0.1/...] - - DEBUG i.m.k.c.KubernetesConfigurationClient - Adding config map with name ingestor
但是,应用程序崩溃,因为它找不到它:
fun main(args: Array<String>) {
build()
.args(*args)
.eagerInitSingletons(true)
15:59:25.484 [main] - - ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Bean definition [xxx.SomeConfiguration] could not be loaded: Failed to inject value for parameter [kafkaBrokers] of class: xxx.configuration.SomeConfiguration
Message: Failed to inject value for parameter [kafkaBrokers] of class: xxx.configuration.SomeConfiguration
Message: Error resolving property value [${kafka.brokers}]. Property doesn't exist
这个问题有点棘手。关键是配置映射中使用的yml文件的名称,应用程序和摄取器配置映射都将其定义为application.yml:
apiVersion: v1
data:
application.yml: |
它们不能重叠,因此我将摄取器配置映射更改为:
kubectl get configmaps ingestor -o yaml
apiVersion: v1
data:
ingestor.yml: |
prop1: value1
现在是<代码>Kafka。找到并注入brokers值。
我正在尝试将我的Docked React应用程序部署到Kubernetes。我相信我已经正确对接了,但我无法访问暴露的吊舱。 我没有在Docker或Kubernetes工作的经验,所以任何帮助都将不胜感激。 我的反应应用程序只是从Tomcat提供的静态文件(从npm运行构建)。 我的Dockerfile在下面。总之,我把我的应用程序放在Tomcat文件夹中,并公开端口8080。 我构建并将Dock
亲爱的,我已经部署了如下示例服务: 当我执行get nodes-o wide时,如下所示, 任何帮助。谢了。
我有点问题。我正在用Spring工具套件构建一个应用程序,由SpringMVC Maven和Hibernate组成。我认为我所有的编码都可以或者接近于好,尽管我对Spring一无所知。 这里我放了我的项目的2个屏幕: 这里我把我认为与这个问题有关的文件 应用-config.mxl: web.xml: mvc-config.xml: 下面是当我尝试输入一个JSP时控制台的输出: 感谢阅读!如果你需要
问题内容: 示例代码: 问题行: 错误: 题: 那么,如何访问该界面内的键? 我是否需要使用方法集定义更复杂的接口来完成此操作? 问题答案: 由于您的分片类型为,因此索引该分片将为您提供type的元素。类型的值无法建立索引。 但是由于您将类型的值放入其中,因此可以使用类型断言来获取该映射类型的值,您可以对其进行正确索引: 输出(在Go Playground上尝试): 如果您知道总是将类型的值存储在
我的spring boot应用程序中目前只有两个类。第一个是main主引导应用程序类,另一个是服务类。我在应用程序类中声明了如下属性源文件: 其他类是FTPService,其中属性值in使用@value,如下所示: 它打印空。也尝试用下面的注释来注释FTPService,但不起作用。尝试将属性复制到Application.properties,但不起作用。 我的属性文件在src/main/reso
我有一个超级简单的Java库伯内特斯Tomcat应用程序在库伯内特斯内部运行,我用在minikube上运行的JVM Jolokia代理安装了它。我正在尝试配置我的库伯内特斯部署,以便我可以在容器外部访问Jolokiaendpoint。当我试图从我的minikube IP上的容器外部访问http://127.0.0.1/jolokia/versionendpoint时,我收到一个连接被拒绝。 我已经