首页 文章

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

提问于
浏览
3

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

我之前尝试过使用 type: LoadBalancer ,但运行正常,但这会在我的 Cloud 提供程序中为每个群集创建一个新的外部Load Balancer . 在我目前的情况下,我想生成多个迷你集群 . 为每个集合创建一个新的(digitalocean)Load Balalancer是太昂贵了,所以我决定用它自己的内部入口控制器运行每个集群,并直接在 80/443 上公开它 .

2 回答

  • 1

    如果您想从服务获得80端口的IP,您可以使用service config yaml中的externalIP字段 . 你可以在这里找到如何写yaml Kubernetes External IP

    但是,如果您的用例非常像启动和运行入口控制器,则不需要将服务暴露在外部 .

  • 2

    如果您使用的是裸机,请将入口控制器服务类型更改为 NodePort 并添加反向代理,以便使用选定的 NodePort 将流量传输到入口控制器服务 .

    如果您在入口控制器服务中使用 externalIP ,则回答为@Pramod V,这样您就会在EndPoints中丢失真正的远程地址 .

    可以找到更完整的答案Here

相关问题