如何解决带有嵌入式码头服务器的 Jersey 应用程序;日志不显示在 kubernetes
我正在开发一个在嵌入式 Jetty 服务器上运行的 Jersey 应用程序:
AuthServiceApplication.kt
@JvmStatic
fun main(args: Array<String>) {
try {
val application = AuthServiceApplication()
application.run()
} catch (e: Exception) {
LOGGER.error("Application execution failed",e)
}
}
fun run() {
val uri = UriBuilder
.fromUri(parameters.serverHost)
.port(parameters.serverPort)
.build()
val server = JettyHttpContainerFactory.createServer(uri,this)
try {
LOGGER.info("Started listening on {}:{}",uri.host,uri.port)
server.join()
} finally {
server.destroy()
}
}
我在 resources/logback.xml
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
</root>
</configuration>
我使用的是 1.2.3 版的 logback:
// Logging
implementation("ch.qos.logback:logback-classic:1.2.3")
implementation("ch.qos.logback:logback-core:1.2.3")
implementation("org.slf4j:slf4j-log4j12:1.7.30")
我已经通过以下配置设法让这个应用程序在 Kubernetes 集群中运行:
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: sm
name: auth-service
spec:
selector:
matchLabels:
app: auth-service
template:
metadata:
labels:
app: auth-service
spec:
containers:
- name: auth-service
image: <URL>
ports:
- containerPort: 8082
---
apiVersion: v1
kind: Service
metadata:
namespace: sm
name: auth-service
spec:
selector:
app: auth-service
ports:
- port: 80
targetPort: 8082
type: ClusterIP
问题是当我尝试运行应用程序时,它失败了,我看到的唯一日志是:
Mar 25,2021 7:58:30 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
| Welcome to JShell -- Version 13.0.2
| For an introduction type: /help intro
jshell> %
描述 pod 也没有提供太多帮助:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 65s default-scheduler Successfully assigned services-marketplace/auth-service-6d698d9759-9m4jf to ip-172-31-59-154.ap-south-1.compute.internal
Normal Pulled 14s (x4 over 64s) kubelet Container image "/auth-service:417" already present on machine
Normal Created 14s (x4 over 64s) kubelet Created container auth-service
Normal Started 14s (x4 over 64s) kubelet Started container auth-service
Warning BackOff 11s (x4 over 57s) kubelet Back-off restarting failed container
我想弄清楚为什么日志没有显示出来。它们在本地和 docker 容器中工作正常,但它们不会出现在 Kuberntes 集群中。我真的很感激帮助解决这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。