创建 Service Mesh
本文档介绍如何创建单集群 Service Mesh。在继续之前,请确保您已熟悉以下主题:
- Mesh 部署模型:选择适合您需求的 Mesh 部署模型。
- Mesh 组件说明:了解 Mesh 组件的职责,并为 Service Mesh 准备必要的 CPU 和内存资源。
有关创建多集群 Service Mesh 的说明,请参阅多集群 Service Mesh 文档。
限制与约束
- 每个集群仅允许一个 Service Mesh。
- 当集群为 global 集群且平台处于灾备环境(即 global 具有主集群和灾备集群)时,global 集群不能部署 Service Mesh。
- 当集群为 IPv4/IPv6 双栈网络时,无法部署 Service Mesh。
前提条件
-
下载与您的平台架构对应的以下安装包,并使用上架软件包机制将其上传到 global 集群和目标集群(请勿手动安装)。
Alauda Service MeshOperatorFlaggerOperatorAlauda Build of JaegerOperatorAlauda Build of OpenTelemetryOperator
WARNING使用
violet push上传 operators 时,不要添加--target-catalog-source参数,请使用 operator 内定义的默认 catalog source。 -
确保该集群已部署 Prometheus 插件或 VictoriaMetrics 插件。
说明:当 VictoriaMetrics 采用多集群部署架构时,
vmstorage可以与 Service Mesh 位于不同的集群中。 -
确保存在可用的 Elasticsearch。Service Mesh 可以对接集群的 Elasticsearch 日志插件或您自己的 Elasticsearch。
-
当集群为 OpenShift 集群时,还必须满足以下前提条件:
- 已创建
istio-system命名空间。 - 将
istio-system命名空间添加到anyuidSCC(Security Context Constraints)组中。为此,请登录 OpenShift 集群的 bastion host 并执行以下命令:
- 已创建
步骤
- 在左侧导航栏中,单击 Service Mesh > Mesh。
- 单击 创建 Service Mesh。
- 选择要部署 Service Mesh 的集群和 Istio 版本。在高级配置中,确保 mesh 架构为单集群,并填写 Elasticsearch 和监控系统的接口参数。您可以选择平台现有系统或外部系统。
- 如果对高可用性有严格要求,请将 Pod 反亲和性设置为 mandatory。
- 组件资源可以使用默认值,但随着 mesh 中服务规模的增长,组件需要进行扩容。请及时为 mesh 组件配置告警策略,以便在需要扩容时收到通知。
有关更多信息,请参见 Mesh 参数说明
说明:当集群为 OpenShift 集群时,mesh 会默认自动检测并部署 istio-cni 组件。
后续操作
- 启用 Istio CNI,以消除每个 Pod 中对特权 init 容器的需求。
- 启用全局限流。
- 使用 Istioctl 工具。
- 监控 Mesh 组件。
Mesh 参数说明
全局配置
Mesh 的全局配置将应用于部署该 mesh 的所有集群。
集群维度配置
集群维度配置仅适用于所选集群。
组件配置
说明:Mesh 组件以 Deployments 的形式部署在集群的特定命名空间中。Mesh 成功创建后,您可以在 组件 选项卡中查看组件运行状态,或单击 组件名称 跳转到该组件在容器平台上部署的命名空间,并查看运行中组件 Deployment 的详细信息。