我们正在分析Kubernetes服务在我们的内部部署环境中的集成 . 我们有基于SaaS的服务,可以公开展示 .
我们对设置服务的外部 endpoints 存有疑虑 . 有没有办法为服务创建外部 endpoints ?
我们尝试使用主节点IP地址在服务中设置 ExternalIP
参数 . 不确定这是正确的方法 . 一旦我们使用主节点IP地址设置外部IP,我们就能够访问这些服务 .
我们还尝试使用入口控制器,我们也可以使用入口控制器运行的节点的IP地址访问我们的服务 .
例如 :
Public IP : XXX.XX.XX.XX
理想情况下,我们会使用负载均衡器虚拟IP映射公共IP,但我们无法在Kubernetes中找到这样的设置 .
有没有办法解决这个问题?
1 回答
我的建议是使用一个Ingress控制器作为kubernetes中所有服务的代理 .
当然,您的入口控制器必须以某种方式暴露给外部世界 . 我的建议是使用入口控制器pod的
hostNetwork
设置(这样,pod将在主机的物理接口上监听,就像任何其他"traditional"服务一样) .一些资源:
Here有关如何从k8s群集外部访问pod的详细信息) .
Here关于如何在k8s上设置入口控制器的一个很好的教程 .
如果群集中有多个minion,那么最终会遇到负载均衡问题 . This question对此有所帮助 .