本节介绍如何创建微服务网关。

创建微服务网关过程中实际上创建了一个运行 Spring Cloud Gateway 的部署。

前提条件

  • KubeSphere 企业版平台需要安装并启用 KubeSphere Spring Cloud 扩展组件。

  • 您需要加入一个项目并在项目中具有 Spring Cloud 微服务管理权限。有关更多信息,请参阅项目成员项目角色

  • 您需要提前准备 Spring Cloud Gateway 容器镜像。有关更多信息,请参阅 Spring Cloud Gateway 官方文档。本节使用 registry.cn-beijing.aliyuncs.com/kse/spring-cloud-gateway:latest 容器镜像作为示例,您也可以根据需要自行构建容器镜像。

操作步骤

  1. 以具有 Spring Cloud 微服务管理权限的用户登录 KubeSphere 企业版 Web 控制台并进入您的企业空间。

  2. 在左侧导航栏选择 Spring Cloud > 微服务网关

  3. 在页面左上角的下拉列表中选择一个项目。

  4. 在页面点击创建

  5. 网关设置页签,设置微服务网关的参数,然后点击下一步

  6. 高级设置页签,选择是否启用外部访问和外部访问模式,然后点击创建

    请参阅参数描述设置微服务网关的参数。

参数描述

以下介绍如何设置微服务网关的参数。

  • 基本信息

    参数 描述

    名称

    微服务网关的名称,同时也是对应的部署的名称。名称只能包含小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。

    镜像

    用于创建微服务网关的容器镜像。例如 registry.cn-beijing.aliyuncs.com/kse/spring-cloud-gateway:latest

    副本数量

    微服务网关部署的容器组副本数量。

  • 资源配额

    设置为微服务网关每个容器的资源预留和资源上限。

    参数 描述

    CPU 预留

    为容器预留的 CPU 资源,单位为核。

    CPU 上限

    允许容器使用的 CPU 资源上限,单位为核。

    内存预留

    为容器预留的内存资源,单位为 MiB。

    内存上限

    允许容器使用的内存资源上限,单位为 MiB。

  • 端口设置

    设置用于暴露微服务网关的服务的端口。

    参数 描述

    协议

    目标容器中的应用程序实际监听的协议。

    名称

    服务端口的名称。

    容器端口

    目标容器中的应用程序实际监听的端口号。如果使用示例容器镜像 registry.cn-beijing.aliyuncs.com/kse/spring-cloud-gateway:latest,请将容器端口号设置为 8080

    服务端口

    服务的端口号。

    点击添加可设置多个服务端口。在已创建的服务端口右侧点击trash-light可删除服务端口。

  • 镜像拉取策略

    设置容器组创建或更新时是否从镜像服务拉取镜像。

    参数 描述

    优先使用本地镜像

    容器组创建或更新时,优先使用容器运行时存储在节点的镜像文件。

    每次都拉取镜像

    容器组创建或更新时,每次都尝试从镜像服务拉取镜像。

    仅使用本地镜像

    容器组创建或更新时,仅使用容器运行时存储在节点的镜像。如果本地不存在所需的镜像,容器创建将出现异常。

  • 健康检查

    检查容器的健康状态。使用此功能前,您需要在容器的应用程序中进行设置,使应用程序可以返回健康检查的结果。

    KubeSphere 企业版支持以下健康检查类型:

    参数 描述

    存活检查

    检查容器是否存话。如果存活检查失败,系统将尝试重启容器。

    就绪检查

    检查容器是否已就绪。如果就绪检查失败,系统将禁止通过服务访问容器所在的容器组。

    启动检查

    检查容器是否已启动。如果启动检查失败,系统将禁用容器的其他探针,并尝试重启容器。

    KubeSphere 企业版支持以下检查方式:

    参数 描述

    HTTP 请求

    向容器组的虚拟 IP 地址发送 HTTP GET 请求,如果响应状态码为 2XX 或 3XX 则表明检查成功。

    命令

    在容器中运行命令,如果命令的退出码为 0 则表明检查成功。

    TCP 端口

    尝试与指定的容器端口建立 TCP 连接,如果连接建立成功则表明检查成功。

  • 环境变量

    设置容器的环境变量。

    • 点击添加环境变量可设置多个环境变量。

    • 点击批量引用可使用配置字典或保密字典中的数据创建环境变量。配置字典或密保字典必须与容器属于同一个项目才能被容器引用。容器创建后环境变量的值不会随配置字典或保密字典设置的变更而动态变化。

    • 在已创建的环境变量右侧点击trash-light可删除环境变量。

    参数 描述

    环境变量的名称。

    环境变量的值。

    资源

    配置字典或保密字典的名称。仅在引用配置字典或保密字典时可用。

    资源中的键

    配置字典或保密字典中的键。与该键对应的值将被用作环境变量的值。仅在引用配置字典或保密字典时可用。

  • 启动命令

    设置容器启动时在容器内部执行的命令。

    参数 描述

    命令

    需要执行的命令的名称。

    参数

    需要执行的命令的参数。您可以使用半角逗号(,)分隔多个参数。

  • 高级设置 > 外部访问

    设置是否允许从 KubeSphere 集群外部访问微服务网关。如果启用外部访问,您需要选择外部访问模式。

    参数 描述

    NodePort

    系统将节点的端口映射到服务端口,可通过节点的 IP 地址和节点端口访问服务。

    LoadBalancer

    系统在 NodePort 服务的基础上为服务分配一个外部 IP 地址,并将外部 IP 地址与一个外部负载均衡器绑定。外部负载均衡器监听服务对应的节点端口,从而可以通过外部 IP 地址访问服务。为实现上述功能,LoadBalancer 类型的服务需要负载均衡器插件和基础设施环境提供支持,并且需要设置相关注解。有关更多信息,请联系您的基础设施环境提供商。