Kubernetes入口用于添加规则,以将流量从外部路由到Kubernetes集群的服务中。在本文中你将了解入口的概念,以及用于路由外部流量到Kubernetes部署的入口控制器。
,
通常情况下,自定义Nginx或HAproxy Kubernetes部署将作为服务被暴露,它们用于将外部流量代理到内部集群的服务中。其中,路由规则将会烤到舱中,并作为configmap添加.Kubernetes入口的行为与此类似,只是路由规则将作为Kubernetes入口对象维护。它具有动态路由规则配置的巨大优势,因此无需重新部署代理豆荚。
,
,
Kubernetes入口入门浅析
,
想要顺利开始使用Kubernetes入口,你需要了解以下两个关键概念:
,
1, Kubernetes入口
2, Kubernetes入口控制器
,
让我们来逐一了解。
,
Kubernetes入口
,
Kubernetes入口是一个原生的Kubernetes资源,你可以设置规则来从外部路由流量到集群内部的服务端点。它需要一个入口控制器来路由入口对象所指定的规则.Ingress对象如下所示:
,
<代码> apiVersion:扩展/v1beta1 :入口 元数据: 名称:test-ingress 名称空间:开发 规范: 规则: (主持人:test.apps.example.com http: 道路: 后端: 名:hello-service servicePort: 80 代码>
,
上面的声明意味着,对test.apps.example.com的所有调用都应打击该名为hello-service的服务,这一服务位于dev命名空间中。
,
关于入口对象,你需要了解的关键事项如下:
,
-
<李>
你应该在你所部署服务的命名空间内创建入口规则。如果在其他没有入口对象的命名空间中,你将无法路由流量到其中的服务内。
李> <李>一个入口对象需要一个入口控制器来路由流量
李> <李>外部流量将不会进入API,而打击是入口控制器服务。李>,
Kubernetes入口控制器/h3>
,
入口控制器是一个典型的部署在集群中的代理服务,它只是暴露给服务的Kubernetes部署。以下是可用于Kubernetes的入口控制器:
,
-
<李>
Nginx入口控制器 李> <李>
Traefik 李> <李> HAproxy
李> <李>
轮廓
李>
<李> GKE入口控制器
, 李>
目前,Nginx是大多数企业的选择。以下是Nginx入口控制器的工作原理:
,
-
<李>
在Nginx控制器豆荚内部的Nginx。参看文件是一个走模板,它可以与Kubernetes入口API通信并实时获得流量路由的最新值。
李> <李>Nginx控制器与Kubernetes入口API通信以检查是否为流量路由创建了规则。
李> <李>如果它发现了任何进入规则,它将应用到Nginx控制器配置,也就是使用去模板在仓内的nginx.conf文件。李>,
如果你使用exec连接到舱并检查/etc/nginx nginx.conf文件,则可以看到在参看文件中应用的入口对象中指定的所有规则。
,
以下的架构图将解释在一个Kubernetes集群上的入口设置。
,