教程:使用 GKE Enterprise 管理服务


Anthos Service Mesh 为 GKE Enterprise 用户提供了工具来监控和管理基于微服务的可靠应用。本教程使用 Google Cloud 上的 Bank of Anthos 示例部署,通过展示如何定义服务等级目标 (SLO) 来介绍 Anthos Service Mesh 的一些服务管理功能。该示例将部署一个真正的 GKE Enterprise 实操环境,其中包含一个 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

目标

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

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

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

费用

除非您已购买订阅,否则部署 Bank of Anthos 应用会产生 GKE Enterprise on Google Cloud 的随用随付费用,如价格页面中所述。

您还需要负责运行 Bank of Anthos 应用时产生的其他 Google Cloud 费用,例如 Compute Engine 虚拟机和负载均衡器的费用。

我们建议在完成本教程或者浏览部署后清理以避免产生更多费用。

准备工作

本教程是探索 GKE Enterprise 教程的后续教程。在开始本教程之前,请按照该页面上的说明设置您的项目并部署 Bank of Anthos。

确定 SLI

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

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

  1. 转到已安装 Bank of Anthos 的项目中的 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 服务列表的屏幕截图

进一步探索部署

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

清理

学完 Bank of Anthos 应用后,您可以清理在 Google Cloud 上创建的资源,以免这些资源占用配额,日后产生费用。

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

  • 选项 2.如果要保留当前项目,您可以使用 terraform destroy 删除示例应用和集群。

删除项目(选项 1)

为了避免产生费用,最简单的方法是删除您为本教程创建的项目。

  1. 在 Google Cloud 控制台中,进入管理资源页面。

    转到“管理资源”

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

删除部署(选项 2)

此方法会删除 Bank of Anthos 应用和集群,但不会删除项目。在 Cloud Shell 上运行以下命令:

  1. 切换到托管安装脚本的目录:

    cd bank-of-anthos/iac/tf-anthos-gke
    
  2. 删除示例和集群:

    terraform destroy
    
  3. 出现提示时,输入项目 ID。

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

后续步骤

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

试学更多教程

详细了解 GKE Enterprise

  • 在我们的技术概览中详细了解 GKE Enterprise。

  • 如需了解如何在实际生产环境中设置 GKE Enterprise,请参阅我们的设置指南

  • 如需了解如何借助 Anthos Service Mesh 发挥更多作用,请参阅 Anthos Service Mesh 文档