您知道是否可以与kubernetes共享localhost:port。
我正在docker-for-mac中运行kubernetes,并且在创建负载平衡器时-一切对于通过本地主机在kubernetes中运行的容器都非常有用。
有时候我喜欢在运行为docker run
的容器中测试一些代码-在这里我用-p 8080:80来打开端口。
现在的问题是,它是否会与运行k8s负载平衡器的localhost冲突-如果我在未对kubernetes负载平衡器开放的端口上运行?
我的猜测是,它不起作用-我在到达运行docker run
的端口时遇到了一些问题。
如果它不起作用,您如何docker run
与Kubernetes一起使用?
答案 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上看到该服务。