我在集群中安装了 ingress-nginx
. 我尝试使用 kind: nodePort
选项公开服务,但这只允许 30000-32767
(AFAIK)之间的端口范围...我需要在端口 80
公开服务的http和 443
为tls,以便我可以链接 A Records
为域直接到服务 . 有谁知道如何做到这一点?
我之前尝试过使用 type: LoadBalancer
,但运行正常,但这会在我的 Cloud 提供程序中为每个群集创建一个新的外部Load Balancer . 在我目前的情况下,我想生成多个迷你集群 . 为每个集合创建一个新的(digitalocean)Load Balalancer是太昂贵了,所以我决定用它自己的内部入口控制器运行每个集群,并直接在 80/443
上公开它 .
2 回答
如果您想从服务获得80端口的IP,您可以使用service config yaml中的externalIP字段 . 你可以在这里找到如何写yaml Kubernetes External IP
但是,如果您的用例非常像启动和运行入口控制器,则不需要将服务暴露在外部 .
如果您使用的是裸机,请将入口控制器服务类型更改为
NodePort
并添加反向代理,以便使用选定的NodePort
将流量传输到入口控制器服务 .如果您在入口控制器服务中使用
externalIP
,则回答为@Pramod V,这样您就会在EndPoints中丢失真正的远程地址 .可以找到更完整的答案Here