文档中心>微服务引擎 TSE>云原生 API 网关>操作指南>Ingress>使用云原生 API 网关管理多容器集群

使用云原生 API 网关管理多容器集群

最近更新时间:2024-03-11 16:32:11

我的收藏

操作场景

在生产系统中,为了保证服务的高可用,容器集群通常使用对等部署的方式,两个容器集群部署相同的服务,当一个容器集群出现故障时,请求能访问对等的容器集群上的服务,从而保证服务的高可用。云原生 API 网关提供针对该场景的解决方案,支持在开启 Kong Ingress Controller 时关联多个容器集群,网关将同步容器集群 Ingress 上的信息以生成网关资源。当任意容器集群修改资源定义(Service,Ingress,Plugin)时,实时同步更新所有其他容器集群。



如图所示,云原生 API 网关关联了容器集群 A 和 B,Ingress Controller 将自动同步集群 A 和 B 上的资源:
1. Kubernetes Service:不同名服务将分别生成 Kong Service 和 Upstream,同名服务将进行 Pod IP 合并,展示在服务的节点信息中。
2. Kong Plugin:生成对应的插件。
3. Ingress:生成对应的路由。

集群故障处理

1. 当集群 A 的 Pod 发生故障时,K8S 机制将自动剔除该节点,网关节点也将自动删除该节点。
2. 当集群 A 的 Api Server 无法连接时,网关将根据健康检查机制自动转发到健康的节点,网关将根据健康检查机制自动转发到健康的节点,以保证服务的连续性。开启健康检查请参考 配置健康检查

前提条件

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

操作步骤

步骤1:创建容器资源

2. 创建并部署容器服务,创建方法可参见 创建集群
注意:
相同命名空间、服务名称、端口号及服务端口名称的服务才会进行 Endpoint 合并,请在Service的 ports 中完整定义 protocol、port、targetPort 和 name。具体可参见以下示例。
示例:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
ports:
- protocol: TCP
port: 80
targetPort: 9376
name: http-mvc
- protocol: TCP
port: 443
targetPort: 8443
name: https-mvc
3. 参见 Ingress 创建 Ingress。
说明:
部署 Ingress 后,Ingress 会在容器集群间进行同步创建和更新。

步骤3:关联容器集群

1. 登录 TSE 控制台
2. 在左侧导航栏单击云原生 API 网关 > Ingress,在页面上方选择网关实例。
3. 未关联容器集群时,页面提示需关联容器集群。
4. 单击立即关联容器集群,选择对接集群类型和集群信息,单击确定,即启用 Kong Ingress Controller。
5. 确认集群绑定成功,状态为 运行中


步骤3:验证服务信息

1. 在左侧导航栏单击云原生 API 网关 > 路由管理,在页面上方选择网关实例。
2. 单击服务页签,确认从容器集群同步过来的服务显示正确。
3. 单击服务名称,进入服务详情页面,单击服务信息 页签,确认节点信息包含来自多个容器集群的 Endpoint。