应用路由

本文档介绍了如何在 KubeSphere 上创建、使用和编辑应用路由。

KubeSphere 上的应用路由和 Kubernetes 上的 Ingress 相同,您可以使用应用路由和单个 IP 地址来聚合和暴露多个服务。

准备工作

  • 您需要创建一个企业空间、一个项目以及两个帐户(例如,project-adminproject-regular)。在此项目中,project-admin 必须具有 admin 角色,project-regular 必须具有 operator 角色。有关更多信息,请参见创建企业空间、项目、帐户和角色
  • 若要以 HTTPS 模式访问应用路由,则需要创建密钥用于加密,密钥中需要包含 tls.crt(TLS 证书)和 tls.key(TLS 私钥)。
  • 您需要创建至少一个服务。本文档使用演示服务作为示例,该服务会将 Pod 名称返回给外部请求。

配置应用路由访问方式

  1. project-admin 身份登录 KubeSphere 的 Web 控制台,然后访问您的项目。

  2. 在左侧导航栏中选择项目设置下的高级设置,点击右侧的设置网关

    备注

    若已设置访问方式,则可以点击编辑,然后选择编辑网关以更改访问方式。

    set-gateway

  3. 在出现的设置网关对话框中,将访问方式设置为 NodePortLoadBalancer,然后点击保存

    备注

    若将访问方式设置为 LoadBalancer,则可能需要根据插件用户指南在您的环境中启用负载均衡器插件。

    access-method-nodeport

    access-method-loadbalancer

创建应用路由

步骤 1:配置基本信息

  1. 登出 KubeSphere 的 Web 控制台,以 project-regular 身份登录,并访问同一个项目。

  2. 选择左侧导航栏应用负载中的应用路由,点击右侧的创建

    create-route

  3. 基本信息选项卡中,配置应用路由的基本信息,并点击下一步

    • 名称:应用路由的名称,用作此应用路由的唯一标识符。
    • 别名:应用路由的别名。
    • 描述信息:应用路由的描述信息。

    basic-info

步骤 2:配置路由规则

  1. 路由规则选项卡中,点击添加路由规则

  2. 选择一种模式来配置路由规则,点击 ,然后点击下一步

    • 自动生成:KubeSphere 自动以<服务名称>.<项目名称>.<网关地址>.nip.io 格式生成域名,该域名由 nip.io 自动解析为网关地址。该模式仅支持 HTTP。

      • 路径:将每个服务映射到一条路径。您可以点击添加 Path 来添加多条路径。

      auto-generate

    • 指定域名:使用用户定义的域名。此模式同时支持 HTTP 和 HTTPS。

      • 域名:为应用路由设置域名。
      • 协议:选择 httphttps。如果选择了 https,则需要选择包含 tls.crt(TLS 证书)和 tls.key(TLS 私钥)的密钥用于加密。
      • 路径:将每个服务映射到一条路径。您可以点击添加 Path 来添加多条路径。

      specify-domain

(可选)步骤 3:配置高级设置

  1. 高级设置选项卡,选择添加元数据

    为应用路由配置注解和标签,并点击创建

    备注

    您可以使用注解来自定义应用路由的行为。有关更多信息,请参见 Nginx Ingress controller 官方文档

    add-metadata

步骤 4:获取域名、服务路径和网关地址

  1. 在左侧导航栏中选择应用负载中的应用路由,点击右侧的应用路由名称。

    route-list

  2. 规则区域获取域名和服务路径,在详情区域获取网关地址。

    • 如果应用路由访问方式设置为 NodePort,则会使用 Kubernetes 集群节点的 IP 地址作为网关地址,NodePort 位于域名之后。

      obtain-address-nodeport

    • 如果应用路由访问方式设置为 LoadBalancer,则网关地址由负载均衡器插件指定。

      obtain-address-loadbalancer

配置域名解析

若在配置路由规则中选择自动生成,则不需要配置域名解析,域名会自动由 nip.io 解析为网关地址。

若在配置路由规则中选择指定域名,则需要在 DNS 服务器配置域名解析,或者在客户端机器上将<路由网关地址> <路由域名>添加到 etc/hosts 文件。

访问应用路由

NodePort 访问方式

  1. 登录连接到应用路由网关地址的客户端机器。

  2. 使用<路由域名>:<NodePort>/<服务路径>地址访问应用路由的后端服务。

    access-route-nodeport

LoadBalancer 访问方式

  1. 登录连接到应用路由网关地址的客户端机器。

  2. 使用<路由域名>/<服务路径>地址访问应用路由的后端服务。

    access-route-loadbalancer

备注

如果您需要使用 NodePort 或 LoadBalancer 从私有网络外部访问应用路由,具体取决于您的网络环境:

  • 您可能需要在基础设施环境中配置流量转发和防火墙规则,以便访问应用路由的网关地址和端口号。
  • 若在配置路由规则中选择自动生成,则可能需要手动编辑路由规则将路由域名中的网关地址改为您私有网络的外部 IP 地址。
  • 若在配置路由规则中选择指定域名,则可能需要改变 DNS 服务器上或者客户端机器 etc/hosts 文件中的配置,以便将域名解析为您私有网络的外部 IP 地址。

查看应用路由详情

操作

  1. 在左侧导航栏中选择工作负载中的应用路由,点击右侧的应用路由名称。

    route-list

  2. 点击编辑信息,或点击更多操作,从下拉菜单中选择一项操作。

    • 编辑信息:编辑应用路由的基本信息,但无法编辑路由名称。
    • 编辑配置文件:编辑应用路由的 YAML 配置文件。
    • 编辑规则:编辑应用路由的规则。
    • 编辑注解:编辑应用路由的注解。有关更多信息,请参见 Nginx Ingress controller 官方文档
    • 删除:删除应用路由并返回应用路由列表页面。

    edit-route

资源状态

点击资源状态选项卡查看应用路由规则。

resource-status

元数据

点击元数据选项卡查看应用路由的标签和注解。

metadata

事件

点击事件选项卡查看应用路由的事件。

events


感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。