【发布时间】:2018-05-20 22:19:16
【问题描述】:
问题陈述:
我已经从docker.io/joethecoder2/spring-boot-web 成功创建了一个 Docker 映像。它已经使用命令行参数进行了测试,并且这些参数在 Docker 本地正常工作。
我正在尝试将传递给 Docker 的 java 参数传递给使用单个映像定义的 Kubernetes POD docker.io/joethecoder2/spring-boot-web
传递参数的目的是让 POD 知道数据库服务的 IP 地址和端口号是什么。
问题定义:
我在这里定义了一个 Kubernetes POD,但是我认为当 POD 运行服务时,参数没有从 singlePod.yaml 正确传递。
预期结果:
我希望 Kubernetes POD 与定义 here 的 Docker 镜像兼容。
我希望 Kubernetes POD 像 Docker 一样接受参数here:
docker run -it -p 8080:8080 joethecoder2/spring-boot-web -Dcassandra_ip=127.0.0.1 -Dcassandra_port=9042
curl -X POST --header 'Content-Type: application/json' --header 'Accept: text/plain' 'http://localhost:8080/restaurant/arguments'
返回正确结果-> 127.0.0.1:9042
错误结果:
我知道实际参数没有传递给 POD,因为当我运行以下服务时,我没有收到任何返回的参数。
curl -X POST --header 'Content-Type: application/json' --header 'Accept: text/plain' 'http://192.168.64.3:32308/restaurant/arguments'
返回错误的结果->:
预期结果 -> 127.0.0.1:9042,在 singlePod.yaml 文件中定义
为什么即使 POD 定义文件知道参数是静态定义的,参数也会丢失?
【问题讨论】:
-
最好创建一个configMap.yaml并将其与Pod yaml文件相关联。它将确保容器可以使用这些环境变量
标签: docker kubernetes integration kubectl minikube