Kubernetes版本:1.10在Barematel上运行
不。的大师:3
我们正在Kubernetes集群中运行我们的多个微服务。当前,我们正在使用NodePort
在群集之外公开这些服务。每个微服务都有其自己的NodePort,因此我们必须维护具有相应微服务的列表。由于我们在Barematel上运行,因此在公开微服务时没有像LodeBalancer这样的功能。
问题:-由于集群中有多个主服务器和工作服务器,因此我们必须一次为任何主服务器使用静态IP或DNS。如果要从群集外部访问任何服务,则必须用作-IP_ADDRESS:NODEPORT
或DNS:NODEPORT
。一次我可以使用任何一个主机的地址。如果那个主服务器袍了,那么我必须用其他主服务器的地址更改微服务地址。我不想使用任何主机的静态IP或DNS。
在没有NodePort的情况下,我们有什么更好的方式公开这些微服务?是否有类似Baremetal的LoadBalancer之类的功能? INGRESS
或Nginx
可以帮助我们吗?
答案 0 :(得分:0)
有一个用于Baremetal的LoadBalancer,它称为METALLB。项目可以在GitHub上使用,很遗憾,此解决方案处于Alpha状态,而且更为复杂。
您还可以follow the instructions from NGINX并为TCP或UDP设置轮询方法。
Ingress
仅支持端口80、443上的http。
您当然可以设置自己的入口控制器,但这将需要很多额外的工作。
NodePort
的不足之处是可用端口数量有限,范围从30000到32767,如果计算机的IP发生更改,您的服务将无法访问。