为了账号安全,请及时绑定邮箱和手机立即绑定

Kubernetes Java 部署中未解析环境变量

Kubernetes Java 部署中未解析环境变量

幕布斯6054654 2021-10-27 10:46:29
在了解了可以传递给 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'虚拟机设置:    最大限度。堆大小(估计):875.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    最大限度。堆大小:512.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,混合模式)
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

java -XshowSettings:vm -version在容器中运行时,JVM_OPTS不包含在您的命令中。

试试这个

kubectl exec test-service-deployment-79c9d4bd54-trxgj -c test-service \
          -- sh -c 'java $JVM_OPTS -XshowSettings:vm -version'


查看完整回答
反对 回复 2021-10-27
?
墨色风雨

TA贡献1853条经验 获得超6个赞

我唯一看到的是您缺少的是 Kubernetes pod 定义中命令行参数的实际最大值。你将它传递给你的docker run ...命令行:


env:

- name: JVM_OPTS

  value: "-Xms256M -Xmx512M -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1"

代替:


env:

- name: JVM_OPTS

  value: "-Xms256M -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1"


查看完整回答
反对 回复 2021-10-27
  • 3 回答
  • 0 关注
  • 267 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信