Java和Docker的结合,虽然它更好地解决了应用程序打包问题。但也存在不兼容性,例如Java无法自动查找Docker设置的内存限制,CPU限制。
这将使JVM无法稳定服务业务!容器将终止您的JVM进程,状态检查将停止您的JVM进程,这将导致您每天控制您的pod几百次。
我们希望当Java进程在容器中运行时,Java可以自动识别容器限制并获取正确的内存和CPU信息,而不必每次都在描述文件中配置容器kubernetes yaml ,您还必须配置JVM参数。
使用JVM MaxRAM参数或解锁实验函数的JVM参数,将JDK更新为10+,我们可以解决这个问题(可能~~~)。
首先,Docker容器本质上是主机上的进程。与主机共享/proc目录,这意味着我们在容器/proc/cpuinfo中看到/proc/meminfo并直接在主机上看到它。一致性如下。