Spring boot 将java_选项传递给kubernetes中的spring引导应用程序
目前,我们正在使用入口点构建Docker映像,并将此映像传递给Kubernetes部署 有没有办法将入口点直接动态地传递给Kubernetes,以便它启动spring引导应用程序 在Kubernetes中直接通过该入口点的不同方式有哪些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
### 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映像