Kong Ingress Controller 介绍
Kong 网关一般通过 Admin API 进行资源管理,可管理的资源包括 Service、Route、Plugin、Consumer 等,在定义资源规则后,Kong 将按照这些配置规则进行对上游服务的请求进行路由分发和控制。
在 Kubernetes 集群环境下,Admin API 方式不是很适应 Kubernetes 声明式管理方式。所以 Kong 在 Kubernetes 集群环境下推出Kong Ingress Controller,涵盖了原 Admin API 的各个方面。因此,Kong Ingress Controller 的作用不仅仅是代理进入 Kubernetes 集群的流量,也可以实现插件配置、负载平衡、健康检查等 Kong 提供的所有功能。
下图展示了它的工作原理:
当您安装了 Kong Ingress Controller,Controller 管理器将监听 Kubernetes 集群内部发生的变化,并更新 Kong 以响应这些变化,从而能够正确代理所有流量。与此同时,Kong 也会根据 Controller 同步的信息进行动态更新,以响应 Kubernetes 集群内发生的扩展、配置更改和故障等变化。
Kubernetes 资源与 Kong 资源对应关系
Kong Ingress Controller 旨在将您配置在 Kubernetes 集群中的资源同步到 Kong ,并生成对应的 Kong 资源以便能够使用 Kong 原有机制进行网关操作。两者资源的对应关系如下:
Kubernetes Service:对应 Kong Service 和 Kong Upstream
Kubernetes Pod:对应 Kong Target
Kubernetes Ingress:对应 Kong Route
Kubernetes 版本与 Kong Ingress Controller 版本对应关系
Ingress 版本 | 1.3.4 | 2.5.0 | 2.7.0 |
Kubernetes 1.14 | ✔ | - | - |
Kubernetes 1.16 | ✔ | - | - |
Kubernetes 1.17 | - | - | - |
Kubernetes 1.18 | ✔ | ✔ | - |
Kubernetes 1.19 | - | - | - |
Kubernetes 1.20 | ✔ | ✔ | - |
Kubernetes 1.21 | - | - | - |
Kubernetes 1.22 | - | ✔ | ✔ |
Kubernetes 1.23 | - | - | - |
Kubernetes 1.24 | - | ✔ | ✔ |
Kubernetes 1.25 | - | - | - |
Kubernetes 1.26 | - | - | ✔ |
Kubernetes 1.27 | - | - | - |
Kubernetes 1.28 | - | - | ✔ |