具有私有 IP 的 Kubernetes 入口控制器

sok*_*ata 5 nginx kubernetes kubernetes-ingress

是否可以在没有公共 IP 地址的情况下部署入口控制器 (nginx)?

谢谢!

mda*_*iel 5

是否可以在没有公共 IP 地址的情况下部署入口控制器 (nginx)?

毫无疑问,是的,如果入口控制器的Service是 ,type: NodePort那么入口控制器的私有 IP 地址是每个 Node的 IP 地址,在指向:80和的端口:443Service。秘密地,这正是 无论如何发生的事情type: LoadBalancer,只是云提供商在负载均衡器的 IP 地址和Node端口绑定之间映射的额外糖衣。

因此,要关闭该循环:如果您希望拥有 100% 的内部 Ingress 控制器,则使用 ahostNetwork: true并将 Ingress 控制器的端口绑定ports:主机的端口 80 和 443;然后,为每个解析为Node集群中每个地址的虚拟主机创建一个 DNS(A 记录|CNAME 记录),然后 poof: 100% 非面向 Internet 的 Ingress 控制器。

  • 如果您的云提供商支持,您还可以将 nginx-controller 服务公开为 LoadBalancer 类型,如果您的云提供商支持它,例如 GCP (2认同)