访问 700 多个实验和课程

在 Google Cloud 中管理 Kubernetes:实验室挑战赛

实验 1 小时 30 分钟 universal_currency_alt 5 个点数 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

GSP510

Google Cloud 自学实验的徽标

简介

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

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

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

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

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

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

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

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。

挑战场景

您在几个月前刚刚入职 Cymbal Shops。您已投入大量时间在 Docker 和 Artifact Registry 中处理容器,并掌握了在 GKE 上管理新的和现有的 Deployment 的要领。您已经练习过更新清单,以及扩缩、监控和调试在集群上运行的应用。

Cymbal Shops 徽标

您的团队希望您着手管理 Kubernetes Deployment,以确保新电子商务网站的发布和应用更新都能顺利进行。在您正式承担这一新角色之前,开发团队希望您先展示一下自己掌握的新技能。在此展示过程中,他们会列出一系列任务,并要求您在沙盒环境中于分配的时间内完成。

您的挑战

在沙盒环境中,开发者创建了一个名为 的 Artifact Registry 仓库,其中包含一个基本的示例应用及其相关代码,您将把该应用部署到集群上。

注意:该仓库中的映像是您稍后将从 spls/gsp510/hello-app 存储桶下载的代码的容器化版本。

您的任务包括:

  • 根据所提供的一组配置创建 GKE 集群。
  • 在集群上启用 Managed Prometheus,用于监控指标。
  • 将 Kubernetes 清单部署到集群,并对错误进行排查与调试。
  • 为 Kubernetes 集群中的错误创建基于日志的指标和提醒政策。
  • 修复清单错误,将应用代码容器化,并使用 Docker 将其推送到 Artifact Registry。
  • 在集群上为应用公开一个服务,并验证您的更新。

任务 1. 创建 GKE 集群

新的 Cymbal Shops 电子商务网站将在 GKE 上原生运行,团队希望了解您在管理和搭建集群方面的实际经验。在本部分,您需要根据提供的一组配置创建一个 Kubernetes 集群,以运行演示应用。

  1. 采用以下配置创建名为 的 GKE 集群:
设置
可用区
发布渠道 常规
集群版本 1.27.8 或更高版本
集群自动扩缩器 已启用
节点数 3
节点数下限 2
节点数上限 6

点击检查我的进度以验证是否完成了以下目标:

创建 GKE 集群

任务 2. 在 GKE 集群上启用 Managed Prometheus

作为电子商务网站策略的一部分,Cymbal Shops 计划使用 Managed Prometheus 监控集群指标,以确保客户获得良好的使用体验。在本部分,您将为集群启用 Managed Prometheus 以监控指标,并创建一个命名空间来部署示例 Prometheus 应用和 PodMonitoring 资源。

  1. 在 GKE 集群上启用 Prometheus 托管式收集。

  2. 在集群上创建一个名为 的命名空间。

  3. 下载示例 Prometheus 应用:

gsutil cp gs://spls/gsp510/prometheus-app.yaml .
  1. 使用以下配置更新 <todo> 部分(第 35–38 行):

    • containers.imagenilebox/prometheus-example-app:latest
    • containers.nameprometheus-test
    • ports.namemetrics
  2. 将应用部署到 GKE 集群中的 命名空间。

  3. 下载 pod-monitoring.yaml 文件:

gsutil cp gs://spls/gsp510/pod-monitoring.yaml .
  1. 使用以下配置更新 <todo> 部分(第 18–24 行):

    • metadata.nameprometheus-test
    • labels.app.kubernetes.io/nameprometheus-test
    • matchLabels.appprometheus-test
    • endpoints.interval
  2. 将 PodMonitoring 资源应用到 GKE 集群中的 命名空间。

点击检查我的进度以验证是否完成了以下目标:

在 GKE 集群上启用 Managed Prometheus

任务 3. 将应用部署到 GKE 集群

Cymbal Shops 的开发团队将持续向集群发布新的应用代码,您需要将这些代码成功地部署到生产环境中。在本部分,您将向集群部署一个 Kubernetes 清单,并检查其中出现的问题。

  1. 下载演示 Deployment 清单文件:
gsutil cp -r gs://spls/gsp510/hello-app/ .
  1. 使用 helloweb-deployment.yaml 清单文件,在 GKE 集群的 命名空间中创建一个 Deployment。该文件位于 hello-app/manifests 文件夹中。

  2. 验证您已成功创建该 Deployment,然后前往 helloweb Deployment 详情页面。您应该会看到以下错误:

无效映像名称错误

此错误可能源于您刚才部署的清单中指定的映像名称无效。在修复映像名称之前,您需要创建一个基于日志的指标和提醒政策,以便将来再次出现该问题时,团队能够及时收到通知。

点击检查我的进度以验证是否完成了以下目标:

将应用部署到 GKE 集群

任务 4. 创建基于日志的指标和提醒政策

Cymbal Shops 希望设置一些基于日志的指标和提醒政策,用于汇总其 Kubernetes Pod 中的错误和警告数量,并在错误数量超过指定阈值时为集群触发提醒机制。在本部分,您将展示自己为团队构建这些指标和提醒政策的能力。

创建基于日志的指标

  1. 在 Logs Explorer 中,创建一个查询,以显示您在上一部分看到的集群警告/错误。
提示:您的查询应仅选择一个“资源类型”和一个“严重级别”

如果查询正确,运行后您应该会在日志中看到以下错误:

Error: InvalidImageName Failed to apply default image tag "<todo>": couldn't parse image reference "<todo>": invalid reference format
  1. 根据此查询创建一个基于日志的指标。对于指标类型,使用计数器;对于日志指标名称,使用 pod-image-errors

创建提醒政策

  1. 根据刚才创建的基于日志的指标,创建一个提醒政策。使用以下详细信息配置政策:
    • 滚动窗口10 min
    • 滚动窗口函数Count
    • 时序聚合Sum
    • 条件类型Threshold
    • 提醒触发器Any time series violates
    • 阈值位置Above threshold
    • 阈值0
    • 使用通知渠道停用
    • 提醒政策名称Pod Error Alert

点击检查我的进度以验证是否完成了以下目标:

创建基于日志的指标和提醒政策

任务 5. 更新并重新部署您的应用

开发团队希望您展示在出现错误时删除并更新集群中 Deployment 的能力。在本部分,您将使用正确的映像引用更新 Kubernetes 清单,删除一个 Deployment,并将更新后的应用部署到集群中。

  1. helloweb-deployment.yaml Deployment 清单中 image 部分的 <todo> 替换为以下映像:

    • us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
  2. 从集群中删除 helloweb Deployment。

  3. 将更新后的 helloweb-deployment.yaml 清单部署到集群的 命名空间。

您应验证部署是否正确无误。您的 Kubernetes 工作负载页面应大致如下所示:

helloweb 已成功部署且无错误

点击检查我的进度以验证是否完成了以下目标:

更新并重新部署您的应用

任务 6. 将代码容器化并部署到集群

最后,作为 Cymbal Shops 电子商务策略的一部分,应用团队会向您提供应用代码,您需要将其容器化并存储到一个映像注册表中,然后使用该代码的最新版本更新集群。

在本部分,您将对应用代码进行容器化,更新存储在 Artifact Registry 中的映像,并将集群上的 Deployment 更新为使用该映像。您的团队在 Artifact Registry 中有一个名为 的仓库,其中包含使用 Docker 构建的 hello-app 示例应用的容器化版本。您将在本地更新用于构建的代码,然后将新版本推送到仓库。

  1. hello-app 目录中,将 main.go 文件的第 49 行更新为使用 Version: 2.0.0

  2. 使用 hello-app/Dockerfile 创建带有 v2 标记的 Docker 映像。

注意:您应遵循 Artifact Registry 的命名惯例,详情请参阅此处
  1. 使用 v2 标记将新构建的 Docker 映像推送到 Artifact Registry 中的仓库。

  2. helloweb Deployment 使用的映像更新为您推送到 Artifact Registry 的 v2 映像。

  3. helloweb Deployment 公开为一个名为 的 LoadBalancer 服务,该服务监听 8080 端口,并将容器的目标端口设置为 Dockerfile 中指定的端口。

  4. 前往 服务的外部负载均衡器 IP 地址,您应该会看到该服务返回以下文本:

Hello, world! Version: 2.0.0 Hostname: helloweb-6fc7476576-cvv5f 注意:网页可能需要几分钟时间才能加载完毕。

点击检查我的进度以验证是否完成了以下目标:

将代码容器化并部署到集群

恭喜!

恭喜!在本实验中,您验证了自己具备根据一组指定配置创建 GKE 集群,以及在集群上启用 Prometheus 托管式收集的技能。您还排查了集群中的错误,创建了基于日志的指标和提醒政策,并更新了 Kubernetes 清单来解决问题。最后,您使用 Docker 将应用代码容器化,并将新版本推送到 Artifact Registry 中的仓库,随后更新集群以使用新的映像,并在集群上公开相应的服务。您已经准备好在自己的环境中管理 Kubernetes 了!

赢得您的下一个技能徽章

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

此技能徽章挑战任务是 Google Cloud 混合云和多云 Cloud Architect 学习路线的一部分。如果您已经完成此学习路线中的其他技能徽章挑战任务,可在 Google Cloud Skills Boost 目录中进行搜索,找出您可以报名参加的其他 20 多个技能徽章挑战任务。

Google Cloud 培训和认证

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

上次更新手册的时间:2023 年 8 月 11 日

上次测试实验的时间:2023 年 8 月 11 日

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

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。