这与其说是一个问题,不如说是一个设计问题。我们已经在我们的公司部署了自己的Kubernetes基础设施,我们正在尝试使用入口和NGINX入口控制器来外部公开我们的服务,但由于它不是一个云环境,例如GCP或AWS,我们不能使用服务类型"LoadBalancer“。我们应该仅仅通过服务类型"NodePort“公开我们的入口控制器吗?这是生产环境(非云)的正常方式吗?
根据我在另一个post中读到的内容,一个合适的建议是使用NodePort,并手动将另一个外部负载均衡器指向您的Kubernetes节点上的端口。
通过这种机制公开入口控制器似乎不是很实用或健壮(例如,您不知道您的服务将被分配哪个端口,并且端口可能会在某个时候被重新分配,等等)。
是否有其他机制可以将入口控制器暴露给外部世界?
发布于 2019-10-08 13:26:04
负载均衡器服务方法是实现此目的的一种方法,但在其背后,它只不过是集群上的一个节点端口。
即使您使用在云提供商上创建LB的服务,LB也需要有一个目标端口来与集群通信。
当使用主要处理web请求的nginx-ingress时,通常将入口放在nodeport服务的前面。
因此,我认为使用NodePort服务是做您想做的事情的好主意;)
这是我的观点,如果其他人有其他方法的话,我很感兴趣。
发布于 2020-04-02 16:18:39
您可以通过服务中的nodePort指定端口。那么它就不会是随机的。
https://stackoverflow.com/questions/58286929
复制