与kubernetes共享localhost:port负载均衡器

时间:2018-09-06 14:41:55

标签: docker docker-for-mac

您知道是否可以与kubernetes共享localhost:port。

我正在docker-for-mac中运行kubernetes,并且在创建负载平衡器时-一切对于通过本地主机在kubernetes中运行的容器都非常有用。

有时候我喜欢在运行为docker run的容器中测试一些代码-在这里我用-p 8080:80来打开端口。

现在的问题是,它是否会与运行k8s负载平衡器的localhost冲突-如果我在未对kubernetes负载平衡器开放的端口上运行?

我的猜测是,它不起作用-我在到达运行docker run的端口时遇到了一些问题。

如果它不起作用,您如何docker run与Kubernetes一起使用?

1 个答案:

答案 0 :(得分:0)

如果您使用的是Mac的Docker(Edge)内置的Kubernetes,则它是相同的Docker守护进程,并且docker run -p将正常在主机上发布端口。这应该与在Docker / Kubernetes外部运行的服务以及公开的Kubernetes服务共享端口空间。

如果您需要运行服务的第二个副本(无论第一个是另一个普通的Docker容器还是Kubernetes服务还是主机进程等),则需要使用docker run -p选项选择其他主机端口。其他。

请记住,“ localhost”是上下文相关的;我会避免在这样的问题中使用它。如果按照您的建议docker run -p 8080:80 ...,主机可以在localhost:8080对该容器进行出站调用;否则,主机可以对容器进行出站调用。容器可以在localhost:80对其自身进行出站调用;并且任何Kubernetes pod或任何其他容器中的任何内容都无法在任何端口的localhost上看到该服务。