创建服务网格

本文档介绍如何创建单集群服务网格。开始之前,请确保您已熟悉以下内容:

  • Mesh 部署模型:选择适合您需求的 mesh 部署模型。
  • Mesh 组件说明:了解 mesh 组件的作用,并为服务网格准备必要的 CPU 和内存资源。

有关创建多集群服务网格的说明,请参见多集群服务网格文档。

目录

约束与限制

  • 每个集群仅允许存在一个服务网格。
  • 当集群为 global 集群且平台处于灾备环境(即 global 有主集群和灾备集群)时,global 集群无法部署服务网格。
  • 当集群为 IPv4/IPv6 双栈网络时,无法部署服务网格。

前提条件

下载与您的平台架构对应的 Alauda Service Mesh Operator 安装包。

通过上传软件包机制上传 Alauda Service Mesh Operator 安装包。

确保集群已部署 Prometheus 插件或 VictoriaMetrics 插件。

注意: 当 VictoriaMetrics 为多集群部署架构时,vmstorage 可以与服务网格位于不同集群。

确保有可用的 Elasticsearch。服务网格可以对接集群的 Elasticsearch 日志插件或您自有的 Elasticsearch。

当集群为 OpenShift 集群时,还需满足以下前提条件:

  • 已创建命名空间 istio-system
  • istio-system 命名空间添加到 anyuid SCC(Security Context Constraints)组。操作方法:登录 OpenShift 集群堡垒机,执行命令:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system

步骤

  1. 在左侧导航栏点击 Service Mesh > Mesh
  2. 点击 Create Service Mesh
  3. 选择集群和 Istio 版本以部署服务网格。在高级配置中,确保 mesh 架构为单集群,并填写 Elasticsearch 和监控系统的接口参数。您可以选择平台已有系统或外部系统。
    • 若严格要求高可用,设置 Pod 反亲和为强制。
    • 组件资源可使用默认值,但随着 mesh 中服务规模增长,组件需要扩容。请及时配置 mesh 组件的告警策略,以便在需要扩容时获得通知。

更多信息请参见 Mesh 参数说明

注意:当集群为 OpenShift 集群时,mesh 会默认自动检测并部署 istio-cni 组件。

后续步骤

  • 启用 Istio CNI,消除每个 Pod 中特权 init 容器的需求。
  • 启用全局限流。
  • 使用 Istioctl 工具。
  • 监控 Mesh 组件。

Mesh 参数说明

全局配置

mesh 的全局配置将应用于所有部署该 mesh 的集群。

参数说明
对接 Elasticsearch平台:对接平台任一集群上的 Elasticsearch 日志插件。选择 Elasticsearch 日志插件所在集群。
外部:对接外部 Elasticsearch 日志插件。用户需配置以下参数:
访问地址:Elasticsearch 的访问地址,以 http://https:// 开头。
认证方式:访问 Elasticsearch 的认证方式。
- Basic Auth:输入用户名和密码进行用户身份验证。
- 无认证:访问无需认证。
对接监控系统平台:对接集群内的 Prometheus 插件或 VictoriaMetrics 插件。
外部:对接外部提供的 Prometheus 或 VictoriaMetrics 插件。用户需配置以下参数:
数据查询地址:监控组件的数据查询地址,以 http://https:// 开头。
认证方式:访问监控系统的认证方式。
- Basic Auth:输入用户名和密码进行用户身份验证。
- 无认证:访问无需认证。
注意:由于 Prometheus 插件无法聚合多个集群的监控数据,该集群下的服务网格无法添加更多集群形成多集群服务网格。

集群维度配置

集群维度配置仅对所选集群生效。

参数说明
Sidecar 配置资源配额:集群级别的 sidecar 资源配额默认值。注入特定服务的 sidecar 时可根据实际情况修改,但不得超过 sidecar 所在命名空间容器配额(LimitRange)的最大限制。
Trace 配置采样率:集群级别的 sidecar Trace 默认采样率。
Redis 配置仅在数据面使用 全局限流 功能时必须配置。具体配置方法请参见启用全局限流。
HTTP 重试策略重试次数:集群级别 HTTP 默认最大重试次数。
注意:服务路由中 Timeout and Retry 策略的 重试次数 会覆盖此默认值。

组件配置

注意:Mesh 组件以 Deployment 形式部署在集群的特定命名空间中。mesh 创建成功后,可在 组件 标签页查看组件运行状态,或点击 组件名称 跳转至容器平台中组件部署的命名空间,查看运行中组件 Deployment 的详细信息。

参数说明
Pod 反亲和Kubernetes 会将组件 Pod 调度到满足 Pod 反亲和 设置的节点。
强制:同一组件的 Pod 只能有一个运行在同一节点上。
优先:允许同一组件的多个 Pod 运行在同一节点。Kubernetes 会根据调度算法尽量将组件 Pod 均匀调度到可用节点,但不能保证每个节点都有组件 Pod。
实例数组件 Pod 的期望运行数量,根据实际业务请求量设置。
资源配额组件每个容器实例创建时的资源请求值(requests),也是容器可用资源的限制值(limits)(CPU、内存)。根据实际业务量和实例数合理设置。
部署节点组件部署的节点。创建 mesh 时,组件的 Pod 只能调度到所选节点上。
ELB华为云弹性负载均衡(ELB),用于为 CCE 集群上的 Istio Gateway 提供负载均衡能力。选中集群为 CCE 集群时,需要填写 ELB IDELB 类型,以关联为集群预先准备的 ELB。
总资源当前配置下创建组件所有容器实例所需的总资源(CPU、内存)配额。组件启用自动扩缩容时,按最大实例数计算。