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

如何在Kubernetes Deployment中传递JDK参数至Spring Boot应用

在Kubernetes Deployment中为JIB构建的Spring Boot应用传递JVM参数

由于你使用Google JIB构建Docker镜像,JIB默认会遵循JVM的标准环境变量规则,以下两种方式可以轻松传递-Djdk.httpclient.keepalive.timeout=120参数:

方法1:使用JAVA_TOOL_OPTIONS环境变量(推荐)

JVM启动时会自动读取该环境变量中的参数,适用于所有Java应用。直接在Deployment的env节点下添加配置:

containers:
  - name: {{ .Chart.Name }}
    securityContext:
      {{- toYaml .Values.securityContext | nindent 12 }}
    image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
    imagePullPolicy: {{ .Values.image.pullPolicy }}
    ports:
      - name: http
        containerPort: 8080
        protocol: TCP
    env:
      - name: SERVER_PORT
        value: "8080"
      - name: SPRING_PROFILES_ACTIVE
        value: {{ .Values.profile.active }}
      - name: TZ
        value: America/New_York
      # 新增JVM参数配置
      - name: JAVA_TOOL_OPTIONS
        value: "-Djdk.httpclient.keepalive.timeout=120"

如果需要传递多个JVM参数,直接在value中拼接即可:

- name: JAVA_TOOL_OPTIONS
  value: "-Djdk.httpclient.keepalive.timeout=120 -Xmx512m -Xms256m"

方法2:使用Spring Boot专属的SPRING_OPTS环境变量

针对Spring Boot应用,也可以使用SPRING_OPTS,它会被Spring Boot的启动脚本自动加载:

containers:
  - name: {{ .Chart.Name }}
    securityContext:
      {{- toYaml .Values.securityContext | nindent 12 }}
    image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
    imagePullPolicy: {{ .Values.image.pullPolicy }}
    ports:
      - name: http
        containerPort: 8080
        protocol: TCP
    env:
      - name: SERVER_PORT
        value: "8080"
      - name: SPRING_PROFILES_ACTIVE
        value: {{ .Values.profile.active }}
      - name: TZ
        value: America/New_York
      # 新增Spring Boot启动参数
      - name: SPRING_OPTS
        value: "-Djdk.httpclient.keepalive.timeout=120"

进阶:通过Helm Values实现可配置参数

如果希望参数支持动态配置,可先在values.yaml中添加:

jvm:
  extraOpts: "-Djdk.httpclient.keepalive.timeout=120"

再在Deployment.yaml中引用该配置:

env:
  - name: SERVER_PORT
    value: "8080"
  - name: SPRING_PROFILES_ACTIVE
    value: {{ .Values.profile.active }}
  - name: TZ
    value: America/New_York
  - name: JAVA_TOOL_OPTIONS
    value: {{ .Values.jvm.extraOpts }}

内容的提问来源于stack exchange,提问作者Kaustubh Hande

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 11:42:17