腾讯云微服务引擎 TSE - 使用 Kong Ingress Controller
文档简介:
操作场景:
Kong 通过 Ingress Controller 实现为 Kubernetes Service 配置插件、健康检查、负载均衡等功能。通过整合 Kong Ingress Controller,Kong 可直接关联到 Kubernetes 整个生命周期,Ingress Controller 将监听容器集群变化,并更新 Kong 的配置,以便能正确代理所有的流量,免去人工管理的困扰。
操作场景
Kong 通过 Ingress Controller 实现为 Kubernetes Service 配置插件、健康检查、负载均衡等功能。通过整合 Kong Ingress Controller,Kong 可直接关联到 Kubernetes 整个生命周期,Ingress Controller 将监听容器集群变化,并更新 Kong 的配置,以便能正确代理所有的流量,免去人工管理的困扰。
前提条件
已创建云原生 API 网关实例。
已购买腾讯云容器服务,包括 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/v1beta1kind: Ingressmetadata:name: demoannotations:kubernetes.io/ingress.class: kongspec:rules:- http:paths:- path: /tsebackend:serviceName: nginxservicePort: 80
对于 apiVersion 为 v1 版本的 Ingress 资源,请参考如下示例进行配置:
apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: demo-v1annotations:konghq.com/plugins: "httpbin-auth"spec:ingressClassName: kongrules:- http:paths:- path: /demo-v1pathType: Prefixbackend:service:name: nginxport:number: 80
7. 进入服务列表页面,查看是否已生成对应的服务。

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

步骤2:停止 Kong Ingress Controller
1. 在 Kong 实例详情页,查看基本信息 > Kong Ingress Controller 卡片。

2. 单击解除关联 操作,确认后解除集群关联。
注意
停止后,Kong 不再监听容器集群变化,资源变更无法同步到网关实例中,通过网关访问容器服务可能出现异常。