通过端口80

时间:2019-01-05 12:03:40

标签: kubernetes kubernetes-ingress bare-metal-server

所以,我今天不向您解释架构,而是为您画一幅画:) 我知道是1/10。

也忘记绘制此图像,它是单节点群集

希望这可以为您节省一些时间。 可能会更容易看到我的挣扎在哪里,因为我暴露出缺乏理解。

因此,简而言之:

  

工作原理:

     
      
  • 我可以使用curl -vH 'host: host.com' http://192.168.1.240/articleservice/system/ipaddr

  • 通过服务器的 inside 中的虚拟主机卷曲每个入口   
  • 我可以访问服务器

  •   

  

什么不起作用:

     
      
  • 不能外部访问群集。
  •   

以某种方式,我自己无法解决此问题,即使我阅读了很多书并获得了很多帮助。由于我对此有一段时间的疑问,现在非常感谢您明确回答。

architecture

1 个答案:

答案 0 :(得分:1)

通常,如果不公开服务,则无法从外部访问群集。 您应该将“ Ingress Controller”服务类型更改为NodePort,并让kubernetes为该服务分配端口。
您可以使用kubectl get service ServiceName查看分配给服务的端口。
现在可以从http://ServerIP:NodePort的外部访问该服务,但是如果您需要使用标准的HTTP和HTTPS端口,则应在群集外部使用反向代理,以将流量从端口80分配到分配的NodePort进入Ingress Controller Service。
如果您不喜欢添加反向代理,则可以将externalIPs添加到Ingress Controller服务中,但这样会导致RemoteAddr在端点中丢失,而获得了Ingress Controller Pod IP。 externalIPs可以是您的公共IP列表

您可以在以下链接中找到有关服务和入口的有用信息:
Kubernetes Services

Nginx Ingress - Bare-metal considerations