我正在运行裸机Kubernetes集群并尝试使用Load Balancer来公开我的服务 . 我通常知道Load Balancer是底层公共 Cloud 的一个功能,但是最近对Ingress控制器的支持似乎现在应该可以使用nginx作为自托管负载均衡器 .
到目前为止,我一直在关注示例here来设置一个nginx Ingress Controller以及它背后的一些测试服务 . 但是,我无法按照步骤6显示运行负载均衡器的节点的外部IP,因为我的节点在地址部分没有ExternalIP,只有LegacyHostIP和InternalIP .
我已经尝试通过在服务规范中指定ExternalIP来为我的集群手动分配一个ExternalIP . 但是,这似乎被映射为externalID .
如何手动设置节点的ExternalIP地址?
2 回答
我建议查看MetalLB:https://github.com/google/metallb
它允许使用ARP或BGP在裸机群集中使用externalIP地址 . 它对我们很有用,并允许您像在 Cloud 中一样简单地请求LoadBalancer服务 .
这是经过测试的,适用于在特定节点上创建的nginx服务 .
假设nginx部署上游侦听端口80,443 . externalIP是节点的公共IP .