Gateway API 使用文档
Gateway API 是 Kubernetes 1.19 版本中引入的一种新的资源类型,目标是建立一套表现力强、易扩展、面向角色的服务网络模型。相较于原有的 Ingress API ,Gateway API 具有更灵活、规范、可扩展等特性, 解决了 Ingress API 不规范、移植性差等问题。从优化网关体验、解耦用户业务与平台关系和兼容 K8s 生态出发, 平台 v5.13.0版本的支持了 Kubernetes Gateway API ,在平台中是作为插件的拓展网关能力进行独立部署,将其特性与平台完美结合。用户可根据自己不同的需求和场景选择使用默认网关或拓展网关。
本篇文章将以 envoy 提供的网关实现为例介绍如何在平台中加入并使用拓展网关能力。
前提条件
- 平台版本至少为 v5.13.0
- 对接开源应用商店。
部署流程
结合 k8s Gateway API 面向角色的特性,平台同样对网关资源进行分级管理,部署流程图划分如下:
平台管理员操作:
安装 k8s Gateway API 基础资源和下游网关实现
k8s Gateway API 由一组 CRD 和控制器等资源组成,声明了一组网关类型的 API 对象,在安装网关下游实现之前,需要先将 k8s Gateway API 安装到平台中。
平台提供了 k8s-gateway-base
应用插件,插件包含了 k8s Gateway API 的所有资源,可通过 平台管理视图 ---> 应用市场 ---> 开源应用商店 ---> 搜索 k8s-gateway-base
的方式一键安装到平台,由于 k8s-gateway-base
插件的资源对命名空间有限制,所以必须将其安装在英文名为 gateway-system
的团队下的任意应用中,最好单独创建一个应用,应用的名称见名知意,便于后期管理。
在安装完 k8s-gateway-base
应用插件的基础之上才能安装下游网关实现,这里示例为 envoy Gateway API ,通过 平台管理视图 ---> 应用市场 ---> 开源应用商店 ---> 搜索 gateway-envoy
,gateway-envoy
插件的资源同样对命名空间有限制,所以必须将其将其安装在英文名为 envoy-gateway-system
的团队下的任意应用中,最好单独创建一个应用,应用的名称见名知意,便于后期管理。