创建服务网格

本文档介绍如何创建单集群服务网格。在继续之前,请确保您熟悉以下主题:

  • [网格部署模型]({{< relref "mesh-u-servicemesh/create-servicemesh/mesh-deploy-model.md" >}}):选择适合您需求的网格部署模型。
  • [网格组件描述]({{< relref "mesh-u-servicemesh/create-servicemesh/component-descriptions.md" >}}):了解网格组件的角色,并为服务网格准备必要的 CPU 和内存资源。

有关创建多集群服务网格的说明,请参阅 [多集群服务网格]({{< relref "mesh-u-servicemesh/multicluster-mesh" >}}) 文档。

限制和注意事项

  • 每个集群仅允许一个服务网格。
  • 当集群为全球集群,且平台处于灾难恢复环境中(即全球具有一个主集群和一个灾难恢复集群)时,全球集群不能部署服务网格。
  • 当集群为 IPv4/IPv6 双栈网络时,无法部署服务网格。

前置条件

下载与您的平台架构相对应的 Alauda 服务网格运维工具安装包。

使用“上传包”机制上传 Alauda 服务网格运维工具安装包。

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

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

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

当集群为 OpenShift 集群时,以下前置条件也必须满足:

  • 已创建命名空间 istio-system
  • istio-system 命名空间添加到 anyuid 安全上下文约束(SCC)组中。为此,请登录到 OpenShift 集群的堡垒主机并执行以下命令:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
    

步骤

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

欲了解更多信息,请见 网格参数描述

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

后续步骤

  • [启用 Istio CNI]({{< relref "mesh-u-servicemesh/create-servicemesh/istio-cni.md" >}}) 以消除每个 Pod 中对特权 init 容器的需求。
  • [启用全局流量控制]({{< relref "mesh-u-servicemesh/create-servicemesh/global_rate_limit.md" >}})。
  • [使用 Istioctl 工具]({{< relref "mesh-u-servicemesh/create-servicemesh/istioctl.md" >}})。
  • [监控网格组件]({{< relref "mesh-u-servicemesh/create-servicemesh/monitoring_component.md" >}})。

网格参数描述

全局配置

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

参数描述
与 Elasticsearch 接口平台:与平台上任一集群的 Elasticsearch 日志插件接口。选择 Elasticsearch 日志插件所在的集群。
外部:与外部 Elasticsearch 日志插件接口。用户需要配置以下参数:
访问地址:Elasticsearch 的访问地址,必须以 http://https:// 开头。
认证方法:访问 Elasticsearch 的认证方法。
- 基本认证:输入用于用户身份验证的用户名和密码。
- 无需认证:访问时不需要认证。
与监控系统接口平台:与集群中的 Prometheus 插件或 VictoriaMetrics 插件接口。
外部:与外部插件提供的 Prometheus 或 VictoriaMetrics 接口。用户需要配置以下参数:
数据查询地址:监控组件的数据查询地址,必须以 http://https:// 开头。
认证方法:访问监控系统的认证方法。
- 基本认证:输入用于用户身份验证的用户名和密码。
- 无需认证:访问时不需要认证。
注意:由于 Prometheus 插件无法聚合来自多个集群的监控数据,因此该集群下的服务网格无法添加更多集群以形成多集群服务网格。

集群维度配置

集群维度配置仅适用于所选集群。

参数描述
边车配置资源配额:边车资源配额的默认值在集群级别。当为特定服务注入边车时,可以根据实际情况进行修改,但不能超过边车所在命名空间容器配额(LimitRange)的最大限制。
追踪配置采样率:边车追踪的默认采样率,在集群级别。
Redis 配置仅在数据平面使用 全局流量控制 功能时需要配置。有关具体的配置方法,请参考 [启用全局流量控制]({{< relref "mesh-u-servicemesh/create-servicemesh/global_rate_limit.md" >}})。
HTTP 重试策略重试计数:HTTP 的默认最大重试计数,在集群级别。
注意:服务路由 超时和重试 策略中的 重试计数 将覆盖该默认值。

组件配置

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

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