在Kubernetes ConfigMap上托管jar文件

时间:2019-03-12 13:57:15

标签: java kubernetes classpath configmap

当我们想扩展JVM类路径时,在ConfigMap上托管Java jar文件是一个好主意吗?

通常,应用程序本身被烘焙到docker映像中,但是要扩展它(通过插件jar等)需要附加卷,将jar文件复制到该卷,然后重新启动pod,但是您需要一个卷来执行此操作。另一个选择是将jar作为二进制对象直接放入ConfigMap中,然后重新启动pod。后者似乎更容易,更快捷,并且应适用于small size个jar文件。

2 个答案:

答案 0 :(得分:1)

否,ConfigMap仅设计用于元数据。 实际上,etcd(kubernetes中的默认键/值存储)的对象大小上限为1MB。

您可以做的是将jar托管在其他服务中,并让init容器在java服务启动之前下载文件。

答案 1 :(得分:1)

将jar放入配置映射中似乎是一种解决方法。尝试其他解决方案。

为什么您不能在Docker映像上打包此依赖项?

您可以使用@reegnz指向的初始化容器

此功能的文档在这里:

https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-initialization/