v2.0
v1.0
  1. Release Notes
    1. Release Notes - 2.0.2最新
    1. Release Notes - 2.0.1
    1. Release Notes - 2.0.0
  1. 产品介绍
    1. 产品简介
    1. 产品功能
    1. 产品优势
    1. 架构说明
    1. 应用场景
    1. 名词解释
  1. 安装指南
    1. 安装说明
    1. 需开放的端口
    1. All-in-One 模式
    1. Multi-Node 模式
    1. 在 Kubernetes 在线部署 KubeSphere
    1. 在 Kubernetes 离线部署 KubeSphere
    1. Master 和 etcd 节点高可用
    1. 存储安装配置说明
    1. 集群组件配置说明
    1. 安装负载均衡器插件
    1. 安装内置 Harbor
    1. 安装内置 GitLab
    1. 升级
    1. 访问 SonarQube 和 Jenkins 服务端
    1. 集群节点扩容
    1. 卸载
  1. 快速入门
    1. 入门必读
    1. 示例一 - 多租户管理快速入门
    1. 示例二 - 应用路由与服务示例
    1. 示例三 - 部署 MySQL
    1. 示例四 - 部署 Wordpress
    1. 示例五 - 创建简单任务
    1. 示例六 - 一键部署应用
    1. 示例七 - 设置弹性伸缩 (HPA)
    1. 示例八 - Source-to-Image
    1. 示例九 - Bookinfo 微服务的灰度发布
    1. 示例十 - 基于Spring Boot项目构建流水线
    1. 示例十一 - 图形化构建流水线
    1. 示例十二 - CI/CD 流水线(离线版)
    1. 示例十三 - 使用 Ingress-Nginx 进行灰度发布
  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. 通用配置
      1. 系统配置修改
      2. 上传镜像至 Harbor
      3. Jenkins 系统设置
    1. FAQ
      1. DevOps 运维FAQ
  1. 用户指南
    1. 应用
      1. 应用模板
      2. 自制应用
      3. 流量治理
      4. 熔断
    1. 工作负载
      1. 工作负载概述
      2. 部署
      3. 有状态副本集
      4. 守护进程集
      5. 任务
      6. 定时任务
      7. 设置健康检查器
      8. 工作负载管理
      9. 自定义 S2i 模板
    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. API 文档
    1. API 文档
    1. 如何调用 API
    1. API 常用术语对照
    1. 监控指标说明
  1. 常见问题
    1. 安装常见问题
    1. 存储常见问题
    1. 控制台使用常见问题
    1. DevOps 常见问题
  1. 附录
    1. 部署 Ceph 存储服务端
    1. 部署 GlusterFS 存储服务端
    1. 云平台配置端口转发和防火墙
KubeSphere®️ 2020 All Rights Reserved.

流量治理

KubeSphere 基于 istio 通过服务网格中部署的 Envoy sidecar 代理,为微服务应用的服务组件提供了流量治理的能力,允许用户修改负载均衡的方式,对连接池管理和熔断器进行细粒度的配置,本文档将对流量治理中的策略配置的所有参数进行说明,建议参考 熔断 示例文档进行实际操作。

流量治理策略配置

点击流量治理拓扑图中的任意一个服务组件,例如点击 reviews,右侧可以看到流量治理策略配置的弹窗。

负载均衡算法

会话保持

其中,流量治理的负载均衡算法表格中的两种策略:

参数 参数说明
负载均衡算法
- ROUND_ROBIN (轮询):默认负载均衡算法
- LEAST_CONN (最小连接数):随机选取两个健康的主机,再从所选取的两个主机中选择一个链接数较少的主机
- RANDOM (随机):从所有健康的主机中,随机选取一个主机,在负载平衡池的端点上均匀分配负载。在没有健康检查策略的情况下,随机通常会比轮询调度策略更加高效,但不会有任何顺序。
会话保持
根据 HTTP header 中的内容获取哈希:
流量治理根据 HTTP header 中的内容获取哈希。
根据 Cookie 中的内容获取哈希:
支持用户输入 Cookie 键的名称,转发方式则由设定的 Cookie 键对应的值来计算哈希,哈希相同的请求则会转发至同一个容器组中。例如我们设定 Cookie 中的 User 为键,则通过计算 User 对应的值的哈希来确认转发规则。
根据源 IP 获取哈希: 根据源 IP 中的内容获得哈希。

在微服务的一个服务组件中,流量治理中可选择开启连接池管理和熔断器等配置,以下将对相关参数进行释义。

连接池管理

在连接池管理一栏,点击 「开启」即可配置连接池管理的各项参数。

参数 参数说明
最大连接数 是指 Envoy 将为上游群集中的所有主机建立的最大连接数,适用于 HTTP/1.1。
每连接最大请求数 对某一后端的请求中,一个连接内能够发出的最大请求数量。对后端连接中最大的请求数量若设为 1 则会禁止 keep alive 特性。
最大请求重试次数 在指定时间内对目标主机最大重试次数。
连接超时时间 TCP 连接超时时间,最小值必须大于 1ms。
最大连接数和连接超时时间是对 TCP 和 HTTP 都有效的通用连接设置
最大等待请求数 等待列队的长度,默认为 1024。

熔断器

在熔断器一栏,点击 「开启」即可配置熔断器的各项参数。

参数 参数说明
连续错误响应个数 在一个检查周期内,连续出现 5xx 状态码的错误的个数,超过该值后,实例将会被移出连接池。
检查周期 (单位: s) 将会对检查周期内的响应码进行筛选,检测实例上一次被移除和这一次被移除之间的时间间隔。默认值为 10s,最小值为 1ms。
容器组隔离比例(单位: %) 上游服务的负载均衡池中允许被移除的实例的最大百分比,采用向上取整。
最短隔离时间 (单位: s) 实例最短的移除时间。实例每次被移除后的隔离时间为被移除的次数与最小移除时间的乘积。该策略设置让系统能够自动增加不健康上游服务实例的隔离时间。