在了解了可以傳遞給 Java 8 虛擬機以使其具有容器感知能力的參數(即 -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap)后,我嘗試將這些參數添加到我的 Kubernetes 部署中以用于 Spring Boot 服務.在我的部署 YAML 文件的容器部分,我有以下內容: 資源: 要求: 內存:“256Mi” 中央處理器:“50m” 限制: 內存:“512Mi” 中央處理器:“200m” 環境: - 名稱:JVM_OPTS 值:“-Xms256M -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1”在我的 Dockerfile 中,我有: ENV JVM_OPTS="-Xmx256M" ENV JVM_ARGS="-Dspring.profiles.active=kubernetes" 曝光 8080 入口點 [ "sh", "-c", "java $JVM_ARGS $JVM_OPTS -jar testservice.jar"]我似乎無法弄清楚為什么最大堆大小沒有正確調整大?。? kubectl exec test-service-deployment-79c9d4bd54-trxgj -c test-service -- java -XshowSettings:vm -version'虛擬機設置: 最大限度。堆大?。ü烙嫞?75.00M 人體工學機器類:服務器 使用 VM:OpenJDK 64 位服務器 VMopenjdk 版本“1.8.0_171”OpenJDK 運行時環境 (IcedTea 3.8.0) (Alpine 8.171.11-r0)OpenJDK 64 位服務器 VM(構建 25.171-b11,混合模式)我在這里做錯了什么?在本地 Docker 安裝中,我可以看到 JVM 最大堆設置正確:$ docker run openjdk:8-jre-alpine java -Xms256M -Xmx512M -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -XshowSettings:vm -version虛擬機設置: 最小。堆大小:256.00M 最大限度。堆大?。?12.00M 人體工學機器類:服務器 使用 VM:OpenJDK 64 位服務器 VM openjdk 版本“1.8.0_171” OpenJDK 運行時環境 (IcedTea 3.8.0) (Alpine 8.171.11-r0) OpenJDK 64 位服務器 VM(構建 25.171-b11,混合模式)
Kubernetes Java 部署中未解析環境變量
幕布斯6054654
2021-10-27 10:46:29