繁体   English   中英

有没有办法在 Kubernetes 部署/pod 定义中给出类路径?

[英]Is there a way to give classpath in Kubernetes deployment/pod definition?

我有一个应用程序战争,它读取 API 实现 jar 文件以在 memory 中加载一些数据。 我目前正在做的是在生成我的应用程序图像时使用 docker 文件在我的“application-war/lib”目录中复制 jar。

这样做的缺点是,每当需要更改 jar 时; 我需要重新创建我的应用程序战争 docker 图像。

有没有办法可以将这个 jar 文件位置外部化,我只需要重新启动正在运行的 pod 而不是每次都创建一个新图像。

我的意思是,如果我可以提供一个额外的 CLASSPATH,我的 pod 容器可以在启动时读取它。

谢谢

您已经以正确的方式进行操作。 应始终为每个构建创建 docker 映像,因此您也有历史记录。 更改正在运行的 pod 中的某些内容并以某种方式重新启动它不是一个好习惯。

如果您仍然想这样做,您可以将外部卷挂载到您的 pod 并配置您的应用程序服务器以从该位置读取战争文件。 在这种情况下,您仍然需要以其他方式访问该卷,以便将文件放在那里。

提供更多上下文。 @Hazim所说的一切都是正确的,我完全同意他关于您以正确的方式进行当前构建的观点,因为它允许您查看图像历史记录并在需要时快速切换。

至于在图像中使用外部文件。 您需要设置一个PV 持久卷PVC 持久卷声明将使用该卷。 Configure a Pod to Use a PersistentVolume for Storage中提供了带有示例的非常详细的描述。 它展示了如何在你的节点上创建一个文件夹,在其中放置一个文件,稍后将加载到一个pod中。 您不会将该文件加载到pod中,而是使用Dockerfile中的路径来加载.jar文件。

如果您的.jar文件由key=value条目组成,您也可以使用ConfigMap而不是 PV。 这在 Redis 应用程序中得到了很好的解释,您可以在此处查看DOCKER / KUBERNETES - CONFIGURE A POD TO USE A CONFIGMAP

我希望这能提供所有需要的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM