【问题标题】:How to expose a service in kubernetes running on Barematel如何在裸机上运行的 kubernetes 中公开服务
【发布时间】:2019-04-29 23:58:50
【问题描述】:

Kubernetes 版本:1.10 在 Barematel 上运行

没有。大师数:3

我们在 Kubernetes 集群中运行多个微服务。目前,我们使用NodePort 在集群外公开这些服务。每个微服务都有自己的 NodePort,因此我们必须维护一个包含相应微服务的列表。由于我们在 Barematel 上运行,因此在公开微服务时没有 LodeBalancer 之类的功能。

问题: - 由于我们在集群中有多个 master 和 worker,我们必须一次为任何 master 使用静态 IP 或 DNS。如果我想从集群外部访问任何服务,我必须使用 IP_ADDRESS:NODEPORTDNS:NODEPORT。一次我可以使用任何一位大师的地址。如果那个主人去礼服,那么我必须用其他主人的地址更改微服务地址。我不想使用任何主机的静态 IP 或 DNS。

在没有 NodePort 的情况下,我们有什么更好的方法来公开这些微服务?在 Baremetal 上是否有像 LoadBalancer 这样的功能? INGRESSNginx 可以帮助我们吗?

【问题讨论】:

    标签: nginx kubernetes microservices kubernetes-ingress nginx-ingress


    【解决方案1】:

    有一个用于 Baremetal 的 LoadBalancer,它被称为 METALLB。项目在 GitHub 上可用,不幸的是,这个解决方案处于 alpha 状态并且更复杂。

    您也可以follow the instructions from NGINX 并为 TCP 或 UDP 设置循环方法。

    Ingress 仅支持端口 80、443 上的 http(s)。 您当然可以设置自己的入口控制器,但这将是很多额外的工作。

    NodePort 的缺点是可用端口数量有限,从 30000 到 32767,如果机器的 IP 发生变化,您的服务将无法访问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-18
      • 2021-12-25
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 2018-08-19
      • 2017-08-24
      相关资源
      最近更新 更多