Spring boot 将java_选项传递给kubernetes中的spring引导应用程序

Spring boot 将java_选项传递给kubernetes中的spring引导应用程序,spring-boot,docker,kubernetes,kubernetes-pod,kubernetes-deployment,Spring Boot,Docker,Kubernetes,Kubernetes Pod,Kubernetes Deployment,目前,我们正在使用入口点构建Docker映像,并将此映像传递给Kubernetes部署 有没有办法将入口点直接动态地传递给Kubernetes,以便它启动spring引导应用程序 在Kubernetes中直接通过该入口点的不同方式有哪些 ### Runtime image ### FROM openjdk:8-jre-alpine #Set working dir WORKDIR /test # Copy the executable JAR COPY /*.jar /test/ # Ru

目前,我们正在使用入口点构建Docker映像,并将此映像传递给Kubernetes部署

有没有办法将入口点直接动态地传递给Kubernetes,以便它启动spring引导应用程序

在Kubernetes中直接通过该入口点的不同方式有哪些

### Runtime image ###
FROM openjdk:8-jre-alpine

#Set working dir
WORKDIR /test

# Copy the executable JAR
COPY /*.jar /test/

# Run the app
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Djsversion=1.0 -D<variable>=<service-1> -D<variable>=<service-2>   -jar  *.jar
运行时映像### 来自openjdk:8-jre-alpine #设置工作方向 WORKDIR/测试 #复制可执行JAR 复制/*.jar/test/ #运行应用程序 入口点java-Djava.security.egd=file:/dev//uradom-Djsversion=1.0-D=-D=-jar*.jar
您可以将它们设置为pod配置中的环境变量

env:
      - name: MY_POD_IP
        valueFrom:
          fieldRef:
            fieldPath: status.podIP
      - name: profile
        value: "dev"
然后像这样在Dockerfile中使用它们

CMD ["sh", "-c", "java -jar -Dspring.profiles.active=$profile rest.war"]

您可以在k8s部署清单中使用
命令

containers:
- name: mycontainer
  env:
  - name: NAME
    value: VALUE
  command: [ "java"]
  args: ["-jar", "-D..."]

您还可以将其与希望传递到docker容器中的其他环境变量一起包含在kubernetes部署yaml文件中:

- name: JAVA_OPTS
  value: >-
        -Djava.security.egd=file:/dev/./urandom 
        -Djsversion=1.0 -D<variable>=<service-1> -D<variable>=<service-2>
- name: SERVER_PORT
  value: 8080
-名称:JAVA\u选项
值:>-
-Djava.security.egd=文件:/dev//uradom
-Djsversion=1.0-D=-D=
-名称:服务器\u端口
价值:8080

感谢您的输入。。我有100个相同参数的微服务,。。。是否可以使用configmaps。。。因为我很容易在一个地方改变,。。。否则,我需要更改每个部署yaml文件中的参数值。您不能将命令放入配置映射,但可以将环境变量值放入配置映射。是的,我得到了。。。但是我如何将配置映射与命令一起传递。。。因此,它将与容器一起启动java进程。你能给我提供一份yaml文件样本吗。。。我是一个新的bie,请帮忙看看这个:您可以使用configmaps为POD设置环境变量,并构建图像以使用这些环境变量,非常感谢@Burak的帮助!!!创建configmap并按以下命令传递环境变量:[“/bin/bash”、“-c”、“$(特殊级别密钥)”]env:-name:SPECIAL_LEVEL_KEY valueFrom:configMapKeyRef:name:javaconfig KEY:JAVA_OPTS现在我可以调用并启动JAVA服务了。谢谢你的评论。。。我不想在Dockerfile中放置CMD/Entrypoint。。。我希望动态地通过kubernetes部署,这样就不需要为JAVA_OPTS参数的任何更改构建docker映像