如何在Barematel上运行的kubernetes中公开服务

时间:2018-11-28 06:22:52

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

Kubernetes版本:1.10在Barematel上运行

不。的大师:3

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

问题:-由于集群中有多个主服务器和工作服务器,因此我们必须一次为任何主服务器使用静态IP或DNS。如果要从群集外部访问任何服务,则必须用作-IP_ADDRESS:NODEPORTDNS:NODEPORT。一次我可以使用任何一个主机的地址。如果那个主服务器袍了,那么我必须用其他主服务器的地址更改微服务地址。我不想使用任何主机的静态IP或DNS。

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

1 个答案:

答案 0 :(得分:0)

有一个用于Baremetal的LoadBalancer,它称为METALLB。项目可以在GitHub上使用,很遗憾,此解决方案处于Alpha状态,而且更为复杂。

您还可以follow the instructions from NGINX并为TCP或UDP设置轮询方法。

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

NodePort的不足之处是可用端口数量有限,范围从30000到32767,如果计算机的IP发生更改,您的服务将无法访问。