You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes Solr Operator中安装jts-core到指定目录的解决方案咨询

可行解决方案

以下3种方案均可实现需求,可根据实际部署场景选择:

方案1:共享卷+Solr额外类路径配置(无需修改镜像、无需root权限)

无需硬写SOLR_INSTALL/server/solr-webapp/webapp/WEB-INF/lib/目录,利用Solr原生支持的自定义类加载路径实现,完全避开权限问题:

  • 定义1个emptyDir类型的共享卷,供initContainer和Solr主容器共享
  • initContainer直接将jts-core jar包下载到共享卷中,无需root权限
  • 给Solr主容器添加环境变量SOLR_OPTS=-Dsolr.sharedLib=/data/extra-libs,指定Solr启动时加载共享卷目录下的所有jar包

SolrCloud CRD配置示例:

podOptions:
  volumes:
  - name: extra-libs
    emptyDir: {}
  initContainers:
  - name: "install-jts-core"
    image: solr:8.9.0
    command: ['sh', '-c', 'wget -O /data/extra-libs/jts-core-1.15.1.jar https://repo1.maven.org/maven2/org/locationtech/jts/jts-core/1.15.1/jts-core-1.15.1.jar']
    volumeMounts:
    - name: extra-libs
      mountPath: /data/extra-libs
solrOpts: "-Dsolr.sharedLib=/data/extra-libs"
volumeMounts:
- name: extra-libs
  mountPath: /data/extra-libs

方案2:构建自定义Solr镜像(生产环境首选,稳定性最高)

直接在镜像构建阶段把jts-core包打入目标路径,部署时无需额外配置:

  1. 编写Dockerfile:
FROM solr:8.9.0
# 临时切换到root用户下载jar包
USER root
RUN wget -O /opt/solr/server/solr-webapp/webapp/WEB-INF/lib/jts-core-1.15.1.jar https://repo1.maven.org/maven2/org/locationtech/jts/jts-core/1.15.1/jts-core-1.15.1.jar \
    && chown solr:solr /opt/solr/server/solr-webapp/webapp/WEB-INF/lib/jts-core-1.15.1.jar
# 切回solr用户,保证运行时权限符合要求
USER solr
  1. 构建镜像并推送到私有镜像仓库,部署SolrCloud时直接使用自定义的镜像即可。

方案3:升级Solr Operator版本适配securityContext配置

你遇到的initContainer securityContext不生效的问题,是低版本Solr Operator的已知缺陷,升级到Solr Operator 0.6.0及以上版本后,即可正常识别initContainer下的securityContext配置,直接用你原有配置即可生效。


内容的提问来源于stack exchange,提问作者Fernando Aspiazu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 18:24:07