应用路由
本文档介绍了如何在 KubeSphere 上创建、使用和编辑应用路由。
KubeSphere 上的应用路由和 Kubernetes 上的 Ingress 相同,您可以使用应用路由和单个 IP 地址来聚合和暴露多个服务。
准备工作
- 您需要创建一个企业空间、一个项目以及两个用户(例如,
project-admin
和project-regular
)。在此项目中,project-admin
必须具有admin
角色,project-regular
必须具有operator
角色。有关更多信息,请参见创建企业空间、项目、用户和角色。 - 若要以 HTTPS 模式访问应用路由,则需要创建保密证书用于加密,密钥中需要包含
tls.crt
(TLS 证书)和tls.key
(TLS 私钥)。 - 您需要创建至少一个服务。本文档使用演示服务作为示例,该服务会将容器组名称返回给外部请求。
配置应用路由访问方式
-
以
project-admin
身份登录 KubeSphere 的 Web 控制台,然后访问您的项目。 -
在左侧导航栏中选择项目设置下的网关设置,点击右侧的开启网关。
-
在出现的对话框中,将访问模式设置为 NodePort 或 LoadBalancer,然后点击确认。
备注
若将访问模式设置为 LoadBalancer,则可能需要根据插件用户指南在您的环境中启用负载均衡器插件。
创建应用路由
步骤 1:配置基本信息
-
登出 KubeSphere 的 Web 控制台,以
project-regular
身份登录,并访问同一个项目。 -
选择左侧导航栏应用负载中的应用路由,点击右侧的创建。
-
在基本信息选项卡中,配置应用路由的基本信息,并点击下一步。
- 名称:应用路由的名称,用作此应用路由的唯一标识符。
- 别名:应用路由的别名。
- 描述信息:应用路由的描述信息。
步骤 2:配置路由规则
-
在路由规则选项卡中,点击添加路由规则。
-
选择一种模式来配置路由规则,点击 √,然后点击下一步。
-
自动生成:KubeSphere 自动以
<服务名称>.<项目名称>.<网关地址>.nip.io
格式生成域名,该域名由 nip.io 自动解析为网关地址。该模式仅支持 HTTP。- 路径:将每个服务映射到一条路径。您可以点击添加 Path 来添加多条路径。
-
指定域名:使用用户定义的域名。此模式同时支持 HTTP 和 HTTPS。
- 域名:为应用路由设置域名。
- 协议:选择
http
或https
。如果选择了https
,则需要选择包含tls.crt
(TLS 证书)和tls.key
(TLS 私钥)的密钥用于加密。 - 路径:将每个服务映射到一条路径。您可以点击添加 Path 来添加多条路径。
-
(可选)步骤 3:配置高级设置
-
在高级设置选项卡,选择添加元数据。
为应用路由配置注解和标签,并点击创建。
备注
您可以使用注解来自定义应用路由的行为。有关更多信息,请参见 Nginx Ingress controller 官方文档。
步骤 4:获取域名、服务路径和网关地址
-
在左侧导航栏中选择应用负载中的应用路由,点击右侧的应用路由名称。
-
在规则区域获取域名和服务路径以及网关地址。
配置域名解析
若在配置路由规则中选择自动生成,则不需要配置域名解析,域名会自动由 nip.io 解析为网关地址。
若在配置路由规则中选择指定域名,则需要在 DNS 服务器配置域名解析,或者在客户端机器上将<路由网关地址> <路由域名>
添加到 etc/hosts
文件。
访问应用路由
NodePort 访问模式
-
登录连接到应用路由网关地址的客户端机器。
-
使用
<路由域名>:<NodePort>/<服务路径>
地址访问应用路由的后端服务。
LoadBalancer 访问方式
-
登录连接到应用路由网关地址的客户端机器。
-
使用
<路由域名>/<服务路径>
地址访问应用路由的后端服务。
备注
查看应用路由详情
操作
-
在左侧导航栏中选择工作负载中的应用路由,点击右侧的应用路由名称。
-
点击编辑信息,或点击更多操作,从下拉菜单中选择一项操作。
- 编辑信息:编辑应用路由的基本信息,但无法编辑路由名称。
- 编辑 YAML:编辑应用路由的 YAML 配置文件。
- 编辑路由规则:编辑应用路由的规则。
- 编辑注解:编辑应用路由的注解。有关更多信息,请参见 Nginx Ingress controller 官方文档。
- 删除:删除应用路由并返回应用路由列表页面。
资源状态
点击资源状态选项卡查看应用路由规则。
元数据
点击元数据选项卡查看应用路由的标签和注解。
事件
点击事件选项卡查看应用路由的事件。
反馈
这篇文章对您有帮助吗?
通过邮件接收 KubeSphere 最新的技术博客与产品更新的通知
感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。