【问题标题】:Share localhost:port loadbalancer with kubernetes与 kubernetes 共享 localhost:port 负载均衡器
【发布时间】:2018-09-06 14:41:55
【问题描述】:

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

我在 docker-for-mac 中运行 kubernetes,并且在创建负载平衡器时 - 对于通过 localhost 在 kubernetes 中运行的容器来说,一切都很好。

有时我喜欢在一个以docker run 运行的容器中测试一些代码 - 我在其中使用 -p 8080:80 东西打开端口。

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

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

如果它不起作用,你如何在 Kubernetes 旁边 docker run

【问题讨论】:

    标签: docker docker-for-mac


    【解决方案1】:

    如果您使用的是 Docker (Edge) for Mac 内置的 Kubernetes,它是同一个 Docker 守护进程,docker run -p 将照常在您的主机上发布端口。这应该与在 Docker/Kubernetes 之外运行的服务以及暴露的 Kubernetes 服务共享一个端口空间。

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

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

    【讨论】:

      猜你喜欢
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多