Warum der Kubernetes-Pod OOMKill bei Verwendung von Eclipse-Temurin 21
Posted: 03 Jan 2025, 14:35
Ich verwende Eclipse-Temurin JDK 21 als Docker-Basis-Image und führe eine Java-Anwendung aus. Dies ist die Docker-Datei:
Dies ist die Java-Anwendung APP_ARGS config:
und das ist die Konfiguration des Kubernetes-Ressourcenlimits:
aber der Kubernetes-Pod wird mit OOMKill neu gestartet. Warum reicht der Speicher trotz des Pod-Limits mit 1 GB Speicher immer noch nicht aus? Wenn Sie den Speicher vergrößern, verschwindet der OOMKill. Wie nutzt der Pod die weiteren 512 MB Speicher?
Code: Select all
FROM 192.168.1.2:8084/eclipse-temurin:21-jdk
RUN mkdir -p /app
WORKDIR /app
COPY ./app-start/target/app-core-service.jar app-core-service.jar
ENV TZ=Asia/Shanghai
EXPOSE 8080
CMD java ${JVM_OPTS} -jar app-core-service.jar ${APP_ARGS} --spring.profiles.active=${SPRING_PROFILES_ACTIVE}
Code: Select all
-Xss512k -Xms128m -Xmx450m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:+HeapDumpOnOutOfMemoryError -Djava.security.egd=file:/dev/./urandom -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=*:31201 -Dcat.enabled=true -Dcat.name=app-core-service-dev
Code: Select all
resources:
limits:
cpu: 2048m
memory: 1Gi
requests:
cpu: 1024m
memory: 512Mi