外部请求通过Ingress进入k8s pod的确切流程图是什么?

时间:2018-12-20 08:36:38

标签: kubernetes kubernetes-ingress

全部

  1. 我非常了解k8s在服务中的nodePort和ClusterIP类型。

  2. 但是我对Ingress方式非常困惑,因为通过这种Ingress方式,请求将如何进入k8s的Pod中?

假设在设置Ingress之后,K8的主IP为 1.2.3.4 ,并且可以使用端口(例如,)连接到后端服务(例如, myservice ) 9000

现在,我如何在外面访问此 myservice:9000 ?即通过 1.2.3.4 ?由于 1.2.3.4 计算机上没有进入端口。

许多文档总是说通过入口YAML文件中配置的'foo.com'访问此文件。但这确实很有趣,因为 xxx.com 肯定需要DNS,让您重新发明任何您想成为真正网站的 xxx.com 并不是魔术将您的 xxx.com 映射到您的计算机!

1 个答案:

答案 0 :(得分:1)

图片的关键部分是Ingress Controller。它是代理(could be nginx or haproxy or another ingress type)的实例,并且在群集中运行。它充当入口点,使您可以添加更复杂的路由规则。它读取与应用程序一起部署并定义Ingress Resourcesrouting rules。这样,每个应用程序都可以说出Ingress Controller路由到该应用程序需要做什么。

由于控制器在群集中运行,因此需要将其暴露给外界。您可以通过NodePort进行此操作,但是如果您使用的是云提供商,那么使用LoadBalancer更为常见。这为您提供了一个到达Ingress控制器的外部IP和端口,您可以在其中指向DNS条目。如果确实将DNS指向它,则可以选择使用基于DNS的路由规则(例如为不同的应用程序使用不同的子域)。

文章'Kubernetes NodePort vs LoadBalancer vs Ingress? When should I use what?'有一些很好的解释和图表-这是Ingress的图表:

enter image description here