arrow_back

设置 Google Cloud 网络:实验室挑战赛

加入 登录
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

设置 Google Cloud 网络:实验室挑战赛

Lab 1 小时 30 分钟 universal_currency_alt 5 个积分 show_chart 中级
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP314

Google Cloud 自定进度实验

概览

在实验室挑战赛中,我们会为您提供一个场景和一系列任务。您将使用从挑战任务的各个实验中学到的技能自行确定如何完成这些任务,而不是按照分步说明进行操作。自动评分系统(显示在本页面中)会提供有关您是否正确完成任务的反馈。

在您参加实验室挑战赛期间,我们不会再教授新的 Google Cloud 概念知识。您需要拓展所学的技能,例如通过更改默认值和查看并研究错误消息来更正您自己所犯的错误。

要想获得满分,您必须在该时间段内成功完成所有任务!

我们建议已报名参加设置 Google Cloud 网络技能徽章课程的学员参加此实验室挑战赛。准备好接受挑战了吗?

设置

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。我们会为您提供新的临时凭据,让您可以在实验规定的时间内用来登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:如果您已有自己的个人 Google Cloud 账号或项目,请不要在此实验中使用,以避免您的账号产生额外的费用。

挑战场景

Cymbal Direct 徽标

Cymbal Direct 是一家线上商对客鞋类和服装零售商,您是该公司的一名云工程师。Cymbal Direct 一直在快速扩张。根据他们的扩张策略,他们收购了一家名叫 Antern 的新公司。Antern 本身是一家电子商务商店,掌握了大量数据。如果能将这些数据恰当地集成到现有云环境中,将对进一步扩大业务规模和触及更多客户产生巨大作用。在收购过程中,Cymbal Direct 希望将 Antern 现有的工作负载和基础设施从本地移到 Google Cloud 上。

Antern 有以下资源需要迁移、复制到 Cymbal Direct 的现有云环境中或在其中重新创建:

  • 一个 PostgreSQL 数据库(在虚拟机上运行),需要迁移至 Cloud SQL for PostgreSQL
  • 容器化的微服务应用代码,需要部署在 GKE 上(测试过程中报告了可靠性问题,需要进行问题排查)
  • 需要创建一个具有两个子网和几条防火墙规则的 VPC 网络,以便将新资源连接到一起
  • 存在于多个项目中的 IAM 用户,需要为其授予对特定资源的适当权限和角色

您的任务是帮助 Cymbal Direct 实现这些目标。

任务 1:将独立式 PostgreSQL 数据库迁移至 Cloud SQL for PostgreSQL 实例

Antern 一直使用在本地虚拟机上运行的 PostgreSQL 数据库存储电子商务购买订单。根据收购策略,Cymbal 要求使用 Database Migration Service 将此数据库迁移至 Cloud SQL for PostgreSQL。在 Cloud SQL 上运行此数据库可帮助 Cymbal 畅享 PostgreSQL 的所有运维优势,并能实现额外的企业级可用性、稳定性和安全性。

在本任务中,您必须使用 Database Migration Services 持续迁移作业和 VPC 对等互联连接,将在 antern-postgresql-vm 虚拟机上运行的独立式 PostgreSQL orders 数据库迁移至 Cloud SQL for PostgreSQL 实例。

针对此独立式 PostgreSQL 数据库做好准备以进行迁移

注意:对于第一项任务,您需要以 Antern Owner 凭据登录 Antern 项目

在这一子任务中,您必须针对该独立式 PostgreSQL 数据库做好准备,使其满足 Database Migration Services 的迁移要求。

要完成此子任务,您必须完成以下步骤:

  1. 启用 Database Migration Services 要求的多个 Google Cloud API。

Database Migration Services 要求启用 Database Migration APIService Networking API 才能运行。您必须为项目启用这些 API。

  1. 使用 pglogical 数据库扩展程序升级 antern-postgresql-vm 虚拟机上的目标数据库。

您必须在 antern-postgresql-vm 计算实例虚拟机上的独立式 PostgreSQL 数据库中安装并配置 pglogical 数据库扩展程序。您必须安装的 pglogical 数据库扩展程序包名为 postgresql-13-pglogical

要完成 pglogical 数据库扩展程序的配置,您必须修改 PostgreSQL 配置文件 /etc/postgresql/13/main/postgresql.conf 以启用 pglogical 数据库扩展程序,并且必须修改 /etc/postgresql/13/main/pg_hba.conf 以允许来自所有主机的访问。

  1. 在此独立式数据库上创建针对数据库迁移的专案用户。

您在 antern-postgresql-vm 虚拟机的独立式 PostgreSQL 数据库上创建的新用户必须配置为使用以下用户名和密码:

  • 迁移用户名
  • 迁移用户密码DMS_1s_cool!
  1. 为该用户授予迁移数据库所需的特权和权限。

Database Migration Services 要求此迁移用户对目标数据库的特定架构和关系拥有特权,以进行迁移,在本例中即 orderspostgres 数据库。

  1. Database Migration Service 要求所有要迁移的表必须拥有主键。为该用户授予所需的特权后,请运行以下命令,以便为 inventory_items 表添加一个主键并退出 psql。
ALTER TABLE public.inventory_items ADD PRIMARY KEY(id); \q exit 注意:Cloud 控制台 GUI 中面向 Database Migration Services 的建议链接中提供了将独立式 PostgreSQL 数据库迁移至 Cloud SQL for PostgreSQL 的详细前提条件。如果您需要关于必须执行的详细步骤方面的帮助,请参考该文档;或者可以查看此技能徽章课程的迁移实验部分中的详细步骤。

点击“检查我的进度”以验证是否完成了以下目标: 针对独立式 PostgreSQL 数据库做好准备,以便迁移到 Cloud SQL for PostgreSQL。

将独立式 PostgreSQL 数据库迁移至 Cloud SQL for PostgreSQL 实例

在此子任务中,您必须使用 Database Migration Services 执行迁移。

要完成此子任务,您必须完成以下步骤:

  1. 使用您前面创建的 迁移用户的凭据,针对此独立式 PostgreSQL 数据库创建一个新的 Database Migration Service 连接配置文件。
  • 用户名
  • 密码DMS_1s_cool!
  • 区域

您必须使用源计算实例的内部 IP 地址来配置此连接配置文件。

  1. 创建新的持续性 Database Migration Service 作业。
  • 对于迁移作业名称,输入
  • 对于源数据库引擎,选择 PostgreSQL
  • 对于目标数据库引擎,选择 Cloud SQL for PostgreSQL
  • 目标区域

在迁移作业配置过程中,请确保为目的地 Cloud SQL 实例指定以下属性:

  • 目标实例 ID 必须设置为
  • 要迁移的实例的密码必须设置为 supersecret!
  • 数据库版本必须设置为 Cloud SQL for PostgreSQL 13
  • 对于 Cloud SQL 版本,仅选择企业版
  • 区域必须设置为
  • 对于连接公共 IP专用 IP 都必须设置。
  • 对于专用 IP,请使用自动分配的 IP 范围,然后点击分配并连接
  • 选择有 4 个 vCPU 和 16 GB 内存的标准机器配置
  • 对于存储类型,请使用 SSD
  • 将存储容量设置为 10 GB

对于连接方法,您必须与默认 VPC 网络建立 VPC 对等互连

  1. 测试并启动此连续迁移作业。
注意:如果您未能正确准备源 PostgreSQL 环境,迁移可能完全失败,也可能无法迁移部分单独的表。如果缺失了部分表,即使迁移看起来正常,也请查看您是否正确配置了所有源数据库表。

点击“检查我的进度”以验证是否完成了以下目标: 将一个独立式 PostgreSQL 数据库迁移至 Cloud SQL for PostgreSQL 实例。

将 Cloud SQL 升级为独立式实例,以便读取和写入数据

  • 在此任务中,您必须通过将 Cloud SQL for PostgreSQL 实例升级为独立式实例来完成迁移。
  • 升级完成后,作业的状态将更新为“已完成”。

点击“检查我的进度”以验证是否完成了以下目标: 将 Cloud SQL 迁移副本升级为独立式实例。

注意:对于此实验,您不必等到迁移完成即可将其升级为独立式实例。一旦可从控制台中执行升级,您便可执行此操作。

任务 2:为用户更新权限并添加 IAM 角色

现在此数据库已迁移到 Cloud SQL for PostgreSQL 实例中,您需要通过 IAM 为 Antern 和 Cymbal 团队中的不同成员更新用户角色。具体来讲,您需要为 Antern Editor 用户授予对 Cloud SQL 数据库的访问权限,为 Cymbal Owner 管理员授予完全控制 Cloud SQL 资源的访问权限,以及授予 Cymbal Editor 对项目的修改权限。

注意:对于此任务,您需要以 Antern Owner 凭据登录 Antern 项目 提示:使用 Cloud IAM 向所需用户授予需要的角色。
  1. Antern Editor 用户授予此 CloudSQL 数据库的 Cloud SQL Instance User 角色。其用户名为:

    • 前往您刚才创建的 Cloud SQL 数据库。在用户部分,将 Antern Editor 用户账号添加至您创建的数据库。使用 Cloud IAM 身份验证并为主账号使用上面的用户名。
  2. Cymbal Owner 用户授予 CloudSQL 数据库的 Cloud SQL Admin 角色。其用户名为:

    • 前往您刚才创建的 Cloud SQL 数据库。在用户部分,将 Cymbal Owner 用户账号添加至您创建的数据库。使用 Cloud IAM 身份验证并为主账号使用上面的用户名。
  3. Cymbal Editor 用户角色从 Viewer 更改为 Editor。其用户名为

点击检查我的进度以验证是否完成了以下目标: 为用户更新权限并添加 IAM 角色

任务 3:创建网络和防火墙

根据收购策略,需要在 Cymbal 项目中重新创建一个在内部连接资源的 VPC 网络。具体来讲,您需要创建一个 VPC 网络,它具有两个子网和几条防火墙规则,从而在资源之间的建立连接。此外,在此网络中,您的团队需要能够使用 SSH 和 RDP 来连接到 Linux 和 Windows 机器,以及通过 ICMP 来诊断网络通信问题。

在此任务中,您将创建满足这些要求的 VPC 网络和防火墙规则。

注意:对于此任务,您需要以 Cymbal Owner 凭据登录 Cymbal 项目

创建一个具有两个子网的 VPC 网络

  1. 创建一个名为 的 VPC 网络,它具有两个子网:。使用区域级动态路由模式。

  2. 对于 ,将区域设置为

    • IP 栈类型设置为 IPv4(单栈)
    • 将 IPv4 范围设置为 10.10.10.0/24
  3. 对于 ,将区域设置为

    • IP 栈类型设置为 IPv4(单栈)
    • 将 IPv4 范围设置为 10.10.20.0/24

为 VPC 网络创建防火墙规则

  1. 创建名为 的防火墙规则。

    • 对于此网络,请使用
    • 将优先级设置为 65535,将流量设置为入站,将操作设置为允许
    • 目标应设置为“网络中的所有实例”,并且 IPv4 范围应设置为 0.0.0.0/24
    • 将协议设置为 TCP,将端口设置为 22
  2. 创建名为 的防火墙规则。

    • 对于此网络,请使用
    • 将优先级设置为 65535,将流量设置为入站,将操作设置为允许
    • 目标应设置为“网络中的所有实例”,并且 IPv4 范围应设置为 0.0.0.0/24
    • 将协议设置为 TCP,将端口设置为 3389
  3. 创建名为 的防火墙规则。

    • 对于此网络,请使用
    • 将优先级设置为 65535,将流量设置为入站,将操作设置为允许
    • 目标应设置为“网络中的所有实例”,并且 IPv4 范围应设置为 0.0.0.0/24
    • 将协议设置为 icmp

点击检查我的进度以验证是否完成了以下目标: 创建网络和防火墙

任务 4:问题排查和修复损坏的 GKE 集群

注意:对于此任务,您需要以 Cymbal Owner 凭据登录 Cymbal 项目

部署了电子商务网站 GKE 集群后,您的团队通知您此 GKE 集群存在几个已知问题需要解决。他们发现了三个需要修复的 Bug:

  • Bug #1:前端服务延迟时间过长
  • Bug #2:评分已过时
  • Bug #3:商品推荐服务中存在崩溃 Bug

根据收购策略,您需要执行修复 的任务。在您的团队中,其他工程师提供了关于他们发现的每个问题的一些其他信息,您可以利用这些信息来排查问题。

提示:

  • Bug #1:访问演示应用的外部 IP,查看是否存在可见的变化。您还可以使用监控信息中心来查看与每项服务关联的指标。
  • Bug #2:商品评分由 Google AppEngine 上托管的评分服务管理。该服务定期调用一个 API 端点,收集每种商品收到的所有最新分数并计算新的评分,使其保持最新。请检查 AppEngine 中的日志,了解此评分服务是否运行正常。另一位团队成员提到这可能与 main.py 文件中的问题有关。
  • Bug #3:浏览您的网站直至遇到问题,然后使用 Cloud Logging 查看各服务导出的日志。另一位团队成员提到此崩溃 Bug 可能是由此服务中的整数转换阶段造成的。

创建 BigQuery 日志接收器

修复底层问题之前,您还需要创建一个日志接收器,以便将与有问题的服务相关的错误发送出去。您接下来需要使用 IAM 为 Antern 中的用户提供对 BigQuery 的不同级别的访问权限,以便他们查看该数据集并与之交互。

  1. 使用 Logs Explorer 调查正在运行的 GKE 应用,以及相应服务是否存在错误。提示:您应该查看严重性级别为 ERROR 的日志。

  2. 找出了服务错误日志之后,请创建一个接收器,以便将这些日志发送至 BigQuery。

    • 将此接收器命名为
    • 对于目标位置,请创建一个名为 gke_app_errors_sink 的 BigQuery 数据集,其位置为 us(美国的多个区域)
    • 包含过滤器中,请务必包含 resource.typeseverity
注意:如果遇到任何权限错误,请确保您是使用 Cymbal Owner 凭据登录 Cymbal 项目的。
  1. Antern Editor 用户授予对此项目的 BigQuery Data Viewer 角色。其用户名为:

  2. Antern Owner 用户授予对此项目的 BigQuery Admin 角色。其用户名为:

点击检查我的进度以验证是否完成了以下目标: 创建 BigQuery 日志接收器

修复 GKE 集群

在 BigQuery 中,您现在为服务中的错误创建了日志接收器,您团队中的一些工程师查看了日志并确定了修复此问题的正确步骤。在此任务中,您需要下载并运行此解决方案代码,以修复 GKE 集群中的服务。

  1. 连接至 cloud-ops-sandbox GKE 集群并运行以下命令以修复此问题。在收到提示时回答验证问题。
git clone --depth 1 --branch csb_1220 https://github.com/GoogleCloudPlatform/cloud-ops-sandbox.git cd cloud-ops-sandbox/sre-recipes ./sandboxctl sre-recipes restore {{{ cymbal_project.startup_script.recipe_number | recipe number }}} ./sandboxctl sre-recipes verify {{{ cymbal_project.startup_script.recipe_number | recipe number }}}
  1. 验证此电子商务商店是否运行正常。

恭喜!

您已完成了云工程师一天的工作!您将 PostgreSQL 数据库迁移到了 Cloud SQL for PostgreSQL 实例,创建了一个具有子网和防火墙的 VPC 网络,排查了 GKE 集群的问题,并向多个项目中的 IAM 用户授予了相关权限。

部署和管理云环境技能徽章

赢得您的下一个技能徽章

本自学实验是使用 Google Cloud 部署和管理云环境技能徽章课程的组成部分。完成此技能徽章可能可赢得上面的徽章,以表彰您取得的成就。您可以在简历和社交平台中分享自己的徽章,并使用 #GoogleCloudBadge 让大家知道您取得的这一成就。

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

上次更新手册的时间:2024 年 3 月 8 日 上次测试实验的时间:2024 年 3 月 8 日

版权所有 2024 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。