【发布时间】:2019-01-29 15:11:30
【问题描述】:
我有一个 docker 映像,其中包含一个 python 文件,该文件使用 sys.stdin() 从命令行接受参数。我可以使用以下命令运行映像
猫文件.csv | docker run -i -t my_image
它将 file.csv 的内容通过管道传输到图像,我得到了预期的输出。
现在我想将此映像部署到 Kubernetes。我可以使用 docker 在服务器上运行图像而没有任何问题。但是如果我卷曲到它,它应该会发回响应,但我没有收到它,因为我没有在任何端口上侦听的 Web 服务器。我继续使用以下命令构建了一个部署。
kubectl run -i my_deployment --image=gcr.io/${PROJECT_ID}/my_image:v1 --port 8080
它构建了部署,我可以看到 Pod 正在运行。然后我就暴露了。
kubectl 公开部署 my_deployment --type=LoadBalancer --port 80 --target-port 8080
但如果我尝试使用 curl 分配的 IP 来访问它,
我收到“连接被拒绝”的响应。
如何将此 docker 镜像部署为 kubernetes 上的服务并将文件内容作为输入发送到服务?我需要一个网络服务器吗?
【问题讨论】:
标签: docker deployment kubernetes google-kubernetes-engine