使用 Kong Ingress Controller

最近更新时间:2023-08-29 14:12:33

我的收藏

操作场景

Kong 通过 Ingress Controller 实现为 Kubernetes Service 配置插件、健康检查、负载均衡等功能。通过整合 Kong Ingress Controller,Kong 可直接关联到 Kubernetes 整个生命周期,Ingress Controller 将监听容器集群变化,并更新 Kong 的配置,以便能正确代理所有的流量,免去人工管理的困扰。

前提条件

已购买腾讯云容器服务,包括 TKE 标准集群TKE Serverless 集群

操作步骤

步骤一:启用 Kong Ingress Controller

1. 登录 TSE 控制台
2. 在左侧导航栏单击云原生 API 网关 > Ingress,在页面上方选择网关实例。
3. 未关联容器集群时,页面提示需关联容器集群。



4. 单击立即关联容器集群,选择对接集群类型和集群信息,单击确定,即启用 Kong Ingress Controller。



说明:
请选择与网关实例网络连通的容器集群,包括在相同 VPC,使用云联网或对等连接打通的 VPC。
Ingress 版本支持 2.7.0,2.5.0 和 1.3.4,仅 Ingress 2.7.0 版本支持关联多容器集群。
IngressClass 默认为 kong,支持配置自定义 IngressClass,用来标识网关实例。
5. 确认已展示选择的容器集群信息。



6. 创建对应 Ingress 规则,请配置 Kubernetes Ingress 资源中的 ingress.class 为步骤 4 中配置的 IngressClass 名称。
注意
对于 apiVersion 为 v1beta1 和 v1 版本的 Ingress 资源,配置方式有所不同,请参考如下示例进行配置。有关不同版本的详细区别,请参见 Kong 官方文档说明
对于 apiVersion 为 v1beta1 版本的 Ingress 资源,请参考如下示例进行配置:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: demo
annotations:
kubernetes.io/ingress.class: kong
spec:
rules:
- http:
paths:
- path: /tse
backend:
serviceName: nginx
servicePort: 80
对于 apiVersion 为 v1 版本的 Ingress 资源,请参考如下示例进行配置:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: demo-v1
annotations:
konghq.com/plugins: "httpbin-auth"
spec:
ingressClassName: kong
rules:
- http:
paths:
- path: /demo-v1
pathType: Prefix
backend:
service:
name: nginx
port:
number: 80
7. 进入服务列表页面,查看是否已生成对应的服务。



8. 若已生成对应的服务,单击服务的名称,进入服务详情页面,单击服务信息页签,查看是否有对应的节点信息。




步骤2:停止 Kong Ingress Controller

1. 在 Kong 实例详情页,查看基本信息 > Kong Ingress Controller 卡片。



2. 单击解除关联 操作,确认后解除集群关联。



注意
停止后,Kong 不再监听容器集群变化,资源变更无法同步到网关实例中,通过网关访问容器服务可能出现异常。