繁体   English   中英

如何在端口80/443的公共节点IP上公开kubernetes nginx-ingress服务?

[英]How to expose kubernetes nginx-ingress service on public node IP at port 80 / 443?

我在集群中安装了ingress-nginx 我尝试使用kind: nodePort选项公开服务,但这仅允许端口范围在30000-32767 (AFAIK)之间。我需要在http的端口80和tls的端口443公开服务,以便可以将域A Records直接链接到服务。 有谁知道该怎么做?

我之前尝试使用type: LoadBalancer ,它可以正常工作,但这会在我的云提供商处为每个集群创建一个新的外部负载均衡器。 在当前情况下,我想生成多个小型集群。 为每个集群创建一个新的(数字海洋)Load Balalancer太昂贵了,因此我决定使用它自己的内部入口控制器运行每个集群,并将其直接暴露在80/443

如果要通过服务使用80端口的IP,则可以使用service config yaml中的externalIP字段。 您可以在此处找到如何编写Yaml的Kubernetes外部IP

但是,如果您的用例确实像启动并运行入口控制器,则不需要在外部公开该服务。

如果您使用的是裸机, NodePort Ingress-controller服务类型更改为NodePort并添加一个反向代理,以使用选择的NodePort将流量流向您的Ingress-controller服务。

正如@Pramod V回答的那样,如果您在入口控制器服务中使用externalIP ,则您会在EndPoints中释放真实的远程地址。

可以在这里找到更完整的答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM