v2.1
v2.0
v1.0
  1. Release Notes
    1. Release Notes - 2.1.1最新
    1. Release Notes - 2.1.0
    1. Release Notes - 2.0.2
    1. Release Notes - 2.0.1
    1. Release Notes - 2.0.0
  1. 产品介绍
    1. 什么是 KubeSphere
    1. 平台功能
    1. 为什么选择 KubeSphere
    1. 架构说明
    1. 应用场景
    1. 名词解释
  1. 安装指南
    1. 安装说明
      1. 概览
      2. 网络防火墙配置
      3. 集群其它参数配置
    1. 在 Linux 快速安装 KubeSphere
      1. All-in-One 模式
      2. Multi-Node 模式
      3. 完整安装(开启所有功能组件)
    1. 在 Kubernetes 安装 KubeSphere
      1. 准备工作
      2. 在 Kubernetes 安装 KubeSphere
    1. 安装可插拔的功能组件
      1. 可插拔功能组件概览
      2. 安装应用商店
      3. 安装内置的 DevOps 系统
      4. 安装内置的日志系统
      5. 安装微服务治理组件(Service Mesh)
      6. 安装告警通知系统
      7. 安装 Metrics-server 开启 HPA
      8. 验证可插拔功能组件的安装
    1. 集群高可用配置安装
      1. 在青云安装 HA 集群
      2. 在华为云安装 HA 集群
      3. 持久化存储配置说明
    1. 相关工具与插件
      1. 安装内置 Grafana
      2. 访问 SonarQube 和 Jenkins 服务端
      3. 安装 Porter 负载均衡器插件
      4. 安装 QingCloud 负载均衡器插件
    1. 认证配置
      1. 接入 LDAP / AD 域账号(Beta)
    1. 集群运维
      1. 安装后添加新的存储类型
      2. 集群节点扩容
      3. 卸载
  1. 升级指南
    1. 升级必读
    1. All-in-One 升级
    1. Multi-node 升级
  1. 快速入门
    1. 入门必读
    1. 1. 多租户管理快速入门
    1. 2. 应用路由与服务示例
    1. 3. 创建 Wordpress 应用并发布至 K8s
    1. 4. 一键部署应用
    1. 5. 创建简单任务
    1. 6. 设置弹性伸缩 (HPA)
    1. 7. Source-to-Image
    1. 8. Binary-to-Image
    1. 9. 基于Spring Boot项目构建流水线
    1. 10. 图形化构建流水线
    1. 11. Bookinfo 微服务的灰度发布
    1. 12. 使用 Ingress-Nginx 进行灰度发布
    1. 13. 应用商店
  1. 管理员指南
    1. 多租户管理
      1. 多租户管理概述
      2. 角色权限概览
    1. 平台管理
      1. 企业空间管理
      2. 账号管理
      3. 平台角色
    1. 基础设施
      1. 服务组件
      2. 主机管理
      3. 存储类型
    1. 监控中心
      1. 监控概述
      2. 如何利用监控定位问题
      3. 集群状态监控
      4. 应用资源监控
      5. 监控策略 - 节点级别
      6. 监控消息 - 节点级别
    1. 平台设置
      1. 应用仓库
      2. 基于本地仓库搭建应用仓库部署Redis
      3. 上传应用到 KubeSphere 官方仓库
      4. 基于 GitHub 搭建自有应用仓库
      5. 邮件服务器
      6. 日志收集
      7. 添加 Fluentd 作为日志接收者
      8. 添加 Kafka 作为日志接收者
    1. 工具箱
      1. Web Kubectl
      2. 日志收集
    1. DevOps 配置
      1. 系统配置修改
      2. 上传镜像至 Harbor
      3. 流水线配置邮件服务器
      4. Jenkins 系统设置
    1. FAQ
      1. DevOps 运维FAQ
  1. 用户指南
    1. 应用
      1. 应用模板
      2. 自制应用
      3. 流量治理
      4. 熔断
    1. 工作负载
      1. 工作负载概述
      2. 部署
      3. 有状态副本集
      4. 守护进程集
      5. 任务
      6. 定时任务
      7. 设置健康检查器
      8. 工作负载管理
      9. 落盘日志收集
    1. 存储
      1. 存储概述
      2. 存储卷
      3. Local Volume 使用方法
    1. 网络与服务
      1. 服务管理
      2. 灰度发布
      3. 应用路由
    1. 监控告警
      1. 告警策略 - 工作负载级别
      2. 告警消息 - 工作负载级别
    1. 配置中心
      1. 密钥
      2. 配置
      3. 镜像仓库
    1. 项目设置
      1. 基本信息
      2. 成员角色
      3. 项目成员
      4. 外网访问
    1. DevOps 工程
      1. DevOps 工程概述
      2. 管理 DevOps 工程
      3. 流水线
      4. 凭证管理
      5. 添加代码仓库
      6. 访问 SonarQube 并创建 Token
      7. 设置自动触发扫描
      8. Jenkins Agent 说明
      9. 流水线常见问题
  1. 开发者指南
    1. Helm 应用开发
      1. 开发模板规范
      2. Helm 应用开发入门
    1. Source to Image(S2I) 自定义模版开发
      1. S2I 原理及流程介绍
      2. 自定义 S2I 模版
  1. API 文档
    1. API 文档
    1. 如何调用 API
    1. API 常用术语对照
    1. 监控指标说明
  1. 常见问题
    1. 安装常见问题
    1. 存储常见问题
    1. 控制台使用常见问题
    1. DevOps 常见问题
  1. 附录
    1. 部署 Ceph 存储服务端
    1. 部署 GlusterFS 存储服务端
    1. 安装 OpenEBS 创建 LocalPV 存储类型
    1. 云平台配置端口转发和防火墙
KubeSphere®️ 2020 All Rights Reserved.

应用路由

编辑

应用路由 (Ingress) 是用来聚合集群内服务的方式,对应的是 Kubernetes 的 Ingress 资源,后端使用了 Nginx Controller 来处理具体规则。Ingress 可以给 service 提供集群外部访问的 URL、负载均衡、SSL termination、HTTP 路由等。本文档说明创建应用路由时需要设置的规则和参数,建议同时参考 应用路由与服务示例 进行实际操作。

前提条件

  • 请确保已预先创建了 服务,定义应用路由规则时需要选择后端的服务,Ingress 的流量被转发到它所匹配后端的服务。
  • 若创建 https 协议的应用路由,请确保已预先创建了 https 证书相关的 secret

创建应用路由

登录 KubeSphere 控制台,在所属的企业空间中选择已有 项目 或新建项目,访问左侧菜单栏,点击 网络与服务 → 应用路由 进入应用路由列表页。

创建应用路由支持两种方式,页面创建编辑模式创建。若选择以编辑模式,可点击右上角编辑模式进入代码界面,支持 yaml 和 json 格式,可以方便习惯命令行操作的用户直接在页面上编辑 yaml 文件创建服务,以下主要介绍页面创建的方式。

第一步:填写基本信息

在应用路由列表页,点击 创建 按钮,填写基本信息:

  • 名称:为应用路由起一个简洁明了的名称,便于用户浏览和搜索。
  • 别名:帮助您更好的区分资源,并支持中文名称。
  • 描述信息:详细介绍应用路由的特性,当用户想进一步了解该应用路由时,描述内容将变得尤为重要。

第二步:填写应用路由规则

点击 添加路由规则,如下图所示。

  • Hostname:应用规则的访问域名,最终使用此域名来访问对应的服务。如果访问入口是以 NodePort 的方式启用,需要保证 Host 能够在客户端正确解析到集群工作节点上;如果是以 LoadBalancer 方式启用,需要保证 Host 正确解析到负载均衡器的 IP 上。

  • 协议:支持 http 和 https 协议;

    • http:一个 Host 配置项(Hostname)和一个 Path 列表,每个 Path 都关联一个后端服务,若使用 loadbalancer 将流量转发到 backend 之前,所有的入站请求都要先匹配 Host 和 Path。
    • https:除了 http 所包含的配置,还需要 secret,在 secret 中可指定包含 TLS 私钥和证书来加密 Ingress,并且 TLS secret 中必须包含名为 tls.crt 和 tls.key 的密钥。
  • Paths:应用规则的路径和对应的后端服务,端口需要填写成服务的端口。

设置完成后点击 保存,然后点击 下一步

创建应用路由

第三步:添加注解

为应用规则添加注解,annotation 和 label 一样都是 key/value 键值对映射结构,例如添加以下一条注解,表示将 /path 路径重定向到后端服务能够识别的根路径 /上面。重定向注解的作用是使应用路由以根路径转发到后端,避免因访问路径错误配置而导致页面返回 404 错误。

nginx.ingress.kubernetes.io/rewrite-target: /

然后点击 下一步

第四步:添加标签

标签设置页用于指定资源对应的一组或者多组标签 (Label)。Label 以键值对的形式附加到任何对象上,定义好标签后,其他对象就可以通过标签来对对象进行引用,最常见的用法便是通过节点选择器来引用对象。

设置完成后点击 创建

访问应用路由

应用路由创建完成后,确保设置的域名可以解析到外网访问入口的 IP 地址,即可使用域名访问。如在私有环境中,可以使用修改本地 hosts 文件的方式来使用应用路由。例如,

设置的域名 路径 外网访问入口方式 端口/IP 集群工作节点IP
demo.kubesphere.io / NodePort 32586,31920 192.168.0.4,192.168.0.3,192.168.0.2
demo2.kubesphere.io / LoadBalancer 139.198.1.1 192.168.0.4,192.168.0.3,192.168.0.2

如上表格,创建了两条应用路由规则,分别使用 NodePort 和 LoadBalancer 方式的访问入口。

NodePort

对于外网访问方式设置的 NodePort,如果是在私有环境下,我们可以直接在主机的 hosts 文件中添加记录来使域名解析到对应的 IP。例如,对于 demo.kubesphere.io,我们添加如下记录:

192.168.0.4 demo.kubesphere.io

需要保证客户端与集群工作节点 192.168.0.4 网络可通,可以使用其它工作节点的 IP,只要客户端和工作节点网络是通的,设置完之后,在浏览器中使用域名和网关的端口号 http://demo.kubesphere.io:32586 即可访问。(此示例中用的是第一个端口 32586,它对应的 HTTP 协议的 80 端口,目前仅支持 HTTP 协议,将在下个版本中支持 HTTPS 协议。)

LoadBalancer

如果外网访问方式设置的是 LoadBalancer,对于 demo2.kubesphere.io,除了参考以上方式在 hosts 文件中添加记录之外,还可以使用 nip.io 作为应用路由的域名解析。nip.io 是一个免费的域名解析服务,可以将符合下列格式的域名解析对应的ip,可用来作为应用路由的解析服务,省去配置本地 hosts 文件的步骤。

格式

10.0.0.1.nip.io maps to 10.0.0.1  
app.10.0.0.1.nip.io maps to 10.0.0.1
customer1.app.10.0.0.1.nip.io maps to 10.0.0.1
customer2.app.10.0.0.1.nip.io maps to 10.0.0.1
otherapp.10.0.0.1.nip.io maps to 10.0.0.1

例如,应用路由的网关公网 IP 地址为 139.198.121.154,在创建应用路由时,Hostname 一栏填写为 demo2.kubesphere.139.198.121.154.nip.io,其它保持原来的设置。 路由规则

创建完成后,直接使用 http://demo2.kubesphere.139.198.121.154.nip.io,即可访问对应的服务。 访问域名登录页面