0

Kubernetes 版本:1.10 在 Barematel 上运行

大师数:3

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

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

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

4

1 回答 1

0

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

您还可以按照 NGINX 的说明为 TCP 或 UDP 设置循环方法。

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

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

于 2018-11-28T13:37:18.997 回答