5

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

我之前尝试type: LoadBalancer过,效果很好,但这会在我的云提供商处为每个集群创建一个新的外部负载均衡器。在我目前的情况下,我想生成多个迷你集群。为每个集群创建一个新的(digitalocean)负载平衡器太昂贵了,所以我决定用它自己的内部入口控制器运行每个集群,并将其直接暴露在80/443.

4

2 回答 2

3

如果您在裸机上,请将您的入口控制器服务类型更改为NodePort并添加一个反向代理以将流量流向您的入口控制器服务,并使用 selected NodePort

正如@Pramod V回答的那样,如果您externalIP在入口控制器服务中使用,那么您会在端点中丢失真实的远程地址。

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

于 2018-12-11T06:50:56.917 回答
3

如果您想从服务获取 80 端口的 IP,可以使用服务配置 yaml 中的 externalIP 字段。你可以在这里找到如何编写 yaml Kubernetes External IP

但是,如果您的用例真的像让入口控制器启动并运行它不需要将服务暴露在外部。

于 2018-04-02T14:39:54.743 回答