Kubernetes POD参数没有传递给服务,但是Docker参数正确传递

时间:2017-12-06 22:18:27

标签: docker kubernetes integration kubectl minikube

问题陈述:

我已成功从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定义文件知道参数已经静态定义了?

1 个答案:

答案 0 :(得分:1)

如果要将环境变量注入容器中,最好使用ConfigMap,以便提供灵活性和关注点分离。

"yyyy-MM-dd'T'HH:mm:ss.SSSZZ"

现在您需要编写一个Service Manifest文件来公开此容器以便访问它。 我附上了进一步研究的链接。

ConfigMap

Service