教程:使用 Anthos 管理服务

Anthos Service Mesh 为 Anthos 用户提供了工具来监控和管理基于微服务的可靠应用。本教程使用 Google Cloud 上的 Anthos Sample Deployment 向您展示了如何定义服务等级目标 (SLO),介绍 Anthos Service Mesh 的一些服务管理功能。Anthos Sample Deployment 会部署一个真正的 Anthos 实操环境,其中包含一个 GKE 集群、服务网格和具有多个微服务的 Bank of Anthos 应用。

什么是 SLO?

根据 Google 的《站点可靠性工程 (SRE)》一书

如果不了解哪些行为对该服务真正重要以及如何衡量和评估这些行为,就不可能正确地管理服务,更不用说妥善管理了。为此,我们希望为用户定义并提供给定级别的服务,无论他们使用内部 API 还是公共产品。

Google SRE 团队使用服务等级指标 (SLI),服务等级目标 (SLO) 和服务等级协议 (SLA) 来构建和指导衡量其工作的指标。SLI 定量度量服务执行情况的某些方面,例如延迟或可用性,而 SLO 是由 SLI 衡量的服务级别的目标值(“这应该发生 x% 的时间”)。借助 Anthos Service Mesh,您可以轻松定义并为自己的服务定义 SLO。它可以为您提供识别相应 SLI 和 SLO 所需的信息,并在服务未满足其 SLO 时通知您。

如需详细了解 Anthos Service Mesh 中的 SLO 和 SLI,请参阅 SLO 概览设计 SLO

目标

在本教程中,我们将通过以下任务向您介绍在 Anthos 中使用 Anthos Service Mesh 管理服务:

  • 确定服务的服务等级指标 (SLI)

  • 使用服务等级目标 (SLO) 监控意外行为。

费用

除非您订阅了 Anthos,否则使用 Anthos Sample Deployment 将按价格页面上列出的随用随付方式支付 Anthos on Google Cloud 费用

您还需要负责运行 Anthos Sample Deployment 时产生的其他 Google Cloud 费用,例如 Compute Engine 虚拟机和负载平衡器的费用。您可以在部署的 Google Cloud Marketplace 页面上查看所有这些资源的每月估算费用。

我们建议在完成本教程或者浏览部署后清理以避免产生更多费用。Anthos Sample Deployment 不适用于生产环境,其组件无法升级。

准备工作

本教程是对探索 Anthos 教程的后续教程。在开始学习本教程之前,请按照该页面上的说明设置项目并安装 Anthos Sample Deployment。

确定 SLI

Anthos Service Mesh 使收集 SLI 和定义 SLO 变得简单、直接。在我们的示例中,您决定先为 Bank of Anthos 的 ledgerwriter 服务定义 SLO。

首先,使用 Anthos Service Mesh 查找可用于确定服务 SLI 的信息。

  1. 转到已安装 Anthos Sample Deployment 的项目中的 Anthos Service Mesh 页面。

    转到 Anthos Service Mesh 页面

    此视图的顶部显示了应用服务的当前状态以及提醒和 SLO 的指标,包括没有 SLO 的服务的数量;目前,所有服务均处于未设置 SLO 之下。此外,在状态列中,所有服务都有一个黑色圆圈指示符。如果将鼠标指针停留在任何服务的该指示符上,系统会通知该服务未设置 SLO。

  2. 注意 ledgerwriter99% 延迟时间的毫秒值(您可能需要向下滚动才能看到)。该指标表明,每 100 个请求中就会有 1 个请求出现这种级别的延迟。在下一部分,您将会用到此值。

创建 SLO

现在针对服务的延迟 SLI 创建 SLO。如需了解服务超出其错误预算时发生的情况,请根据您在上一部分中看到的信息有意地设置一个很小的阈值。对于真正的生产服务,您将尝试找到阈值延迟值,该值不低于用户从应用中获得良好体验所需的阈值。

  1. 在 Anthos Service Mesh 表格视图中,点击 legergerwriter 以转到服务概览页面。

  2. 服务状态下,点击创建 SLO

  3. SLI 类型列表中,选择延迟时间

  4. 保留默认的基于请求的评估方法,然后点击继续

  5. 延迟时间阈值设置为任意较小的值,例如 10 ms(明显低于您之前观察到的 99% 延迟时间值),然后再次点击继续

  6. 合规期中,将时间段类型设置为 Rolling,并将周期长度设置为 1 Day

  7. SLO 目标中,将合规性目标设置为 90%。Anthos Service Mesh 使用此值来计算此 SLO 的错误预算;也就是说,请求的最大百分比应超过您指定的延迟阈值。 通过预览版,您可以了解您的 SLO 在最近一天的表现。点击继续

  8. 为您的 SLO 命名部分会建议为新 SLO 使用默认名称:您可以接受建议的默认值,也可以指定新名称。如需创建 SLO 并转到 ledgerwriter运行状况页面,请点击创建 SLO

点击下拉箭头即可查看有关 SLO 的更多详情。您应该会发现,根据您的设置,SLO 超出错误预算。您还可以在此视图中修改或删除 SLO。

Anthos Service Mesh 服务运行状况视图的屏幕截图

重新检查 SLO 和提醒指示符

  1. 在服务概览页面上,点击返回箭头以返回表格视图。现在,您可以看到未设置 SLO 的服务计数已减少 1,而且 SLO 超出错误预算不再为 0。

  2. 如果您向下滚动到 legergerwriter,请注意相邻指示符已更改为橙色警告三角形。如果将鼠标指针悬停在该指示符上,系统会提示您调查服务可靠性。点击指示符即可返回服务的“运行状况”页面以查看您的 SLO 详细信息。在拓扑视图中,您的服务还会显示相同的指示符。

带有 SLO 警告的 Anthos Service Mesh 服务列表的屏幕截图

进一步探索部署

在我们的部署中,Anthos 仍有更多值得研究和处理的事宜。在按照下一部分中的清理说明操作之前,您随时可以试学其他教程,也可以继续探索 Google Cloud 上的 Anthos Sample Deployment。

清理

学完 Anthos Sample Deployment 后,您可以清理在 Google Cloud 上创建的资源,以避免这些资源占用配额,日后产生费用。以下部分介绍如何删除或关闭这些资源。

  • 选项 1. 您可以删除该项目。这是推荐的方法。但是,如要保留项目,您可以使用选项 2 删除部署。

  • 选项 2.(实验性)如果您正在处理现有的空项目,则可能更希望从删除部署开始手动还原本教程中的所有步骤。

  • 选项 3.(实验性)如果您是 Google Cloud 专家或者在集群中已有资源,则可能希望手动清除在本教程中创建的资源。

删除项目(选项 1)

  1. 在 Cloud Console 中,转到管理资源页面。

    转到“管理资源”

  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关闭以删除项目。

删除部署(选项 2)

此方法依赖于允许 Deployment Manager 撤消其创建的内容这一功能。即使部署有错误,您也可以使用此方法来撤消它。

  1. 在 Cloud Console 的导航菜单上,点击 Deployment Manager

  2. 选择您的部署,然后点击删除

  3. 再次点击删除进行确认。

  4. 即使部署存在错误,您仍然可以选择并删除它。

  5. 如果点击删除不起作用,作为最后的办法,您可以尝试删除但保留资源。如果 Deployment Manager 无法删除任何资源,您需要记下这些资源并尝试手动删除它们。

  6. 等待 Deployment Manager 完成删除。

  7. (临时步骤)在导航菜单中,点击网络服务 > 负载平衡,然后删除 anthos-sample-cluster1 集群创建的转发规则。

  8. (可选)转到 https://source.cloud.google.com/<project_id>。删除名称包含 config-repo 的代码库(如有)。

  9. (可选)删除您在部署期间创建的服务帐号及其所有 IAM 角色。

执行手动清理(选项 3)

此方法依赖于从 Google Cloud Console 手动删除资源。

  1. 在 Cloud Console 的导航菜单上,点击 Kubernetes Engine

  2. 选择您的集群,然后点击删除,然后再次点击删除进行确认。

  3. 在 Cloud Console 的导航菜单上,点击 Compute Engine

  4. 选择跳转服务器并点击删除,然后再次点击删除进行确认。

  5. 遵循选项 2 中的第 7 步和第 8 步操作。

如果您打算在手动清理后重新部署,请验证是否符合准备工作部分中所述的所有要求。

后续步骤

我们的 Anthos 文档中还有更多信息可供探索。

试学更多教程

  • 保护 Anthos 中探索关于 Anthos Sample Deployment 的 Anthos 安全功能。

  • 试用其他 Google Cloud 功能。查阅我们的教程

详细了解 Anthos

参加问卷调查

完成本教程后,请完成我们的调查问卷。我们很想听听您在学习本教程的任何阶段可能遇到的任何问题。感谢您使用调查问卷来提交反馈。

谢谢!

Anthos 团队敬上