正在加载…
未找到任何结果。

在 Google Cloud 控制台中运用您的技能

为 AWS 专业人员构建 Google Cloud 基础设施

访问 700 多个实验和课程

使用 Kubernetes 编排云 (AWS)

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

GSP1120

概览

Kubernetes 专为应用而打造。在本实验中,您将使用一个名为“app”的示例应用。

注意:app 托管在 GitHub 上,提供了一个 12 要素应用的示例。在本实验中,您将使用以下 Docker 映像:
  • kelseyhightower/monolith - 单体式应用,包含 auth 和 hello 服务。
  • kelseyhightower/auth - auth 微服务。为通过身份验证的用户生成 JWT 令牌。
  • kelseyhightower/hello - hello 微服务。问候通过身份验证的用户。
  • nginx - auth 和 hello 服务的前端。
  • Kubernetes 是一个开源项目(项目网站为 kubernetes.io),可在从笔记本电脑到高可用性多节点集群、从公有云到本地部署、从虚拟机到裸金属等众多不同环境中运行。

    在本实验中,借助 Kubernetes Engine 这样的托管式环境,您可以把全副精力放在 Kubernetes 的使用和体验上,而不必分心去设置底层基础设施。

    目标

    在本实验中,您将学习如何完成以下操作:

    • 使用 Kubernetes Engine 预配完整的 Kubernetes 集群。
    • 使用 kubectl 部署和管理 Docker 容器。
    • 使用 Kubernetes 的 Deployment 和 Service 对象将应用分解成微服务。

    设置和要求

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

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

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

    为完成此实验,您需要:

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

    如何开始实验并登录 Google Cloud 控制台

    1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

      • “打开 Google Cloud 控制台”按钮
      • 剩余时间
      • 进行该实验时必须使用的临时凭据
      • 帮助您逐步完成本实验所需的其他信息(如果需要)
    2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

      该实验会启动资源并打开另一个标签页,显示“登录”页面。

      提示:将这些标签页安排在不同的窗口中,并排显示。

      注意:如果您看见选择账号对话框,请点击使用其他账号
    3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

      {{{user_0.username | "<用户名>"}}}

      您也可以在“实验详细信息”窗格中找到“用户名”。

    4. 点击下一步

    5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

      {{{user_0.password | "<密码>"}}}

      您也可以在“实验详细信息”窗格中找到“密码”。

    6. 点击下一步

      重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
    7. 继续在后续页面中点击以完成相应操作:

      • 接受条款及条件。
      • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
      • 请勿注册免费试用。

    片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

    注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。

    激活 Cloud Shell

    Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。

    1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell

    2. 在弹出的窗口中执行以下操作:

      • 继续完成 Cloud Shell 信息窗口中的设置。
      • 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。

    如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID

    Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

    gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。

    1. (可选)您可以通过此命令列出活跃账号名称:
    gcloud auth list
    1. 点击授权

    输出:

    ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
    1. (可选)您可以通过此命令列出项目 ID:
    gcloud config list project

    输出:

    [core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

    Google Kubernetes Engine

    1. 在 Cloud Shell 环境中,输入以下命令设置可用区:
    gcloud config set compute/zone {{{ project_0.default_zone | ZONE }}}
    1. 启动一个集群,以便在本实验中使用:
    gcloud container clusters create io 在创建集群时,您会自动通过该集群的身份验证。如果您与 Cloud Shell 的连接出于任何原因断开,请运行 gcloud container clusters get-credentials io 命令重新进行身份验证。 注意:创建集群需要一段时间才能完成,因为 Kubernetes Engine 需要在后台预配一些虚拟机来给您使用!

    任务 1. 获取示例代码

    1. 从 Cloud Shell 命令行复制源代码:
    gsutil cp -r gs://spls/gsp021/* .
    1. 切换到本实验所需的目录:
    cd orchestrate-with-kubernetes/kubernetes
    1. 列出文件,了解您要使用的是哪些文件:
    ls

    该示例的布局如下:

    deployments/ /* Deployment manifests */ ... nginx/ /* nginx config files */ ... pods/ /* Pod manifests */ ... services/ /* Services manifests */ ... tls/ /* TLS certificates */ ... cleanup.sh /* Cleanup script */

    现在您已经有了代码,接下来就可以拿 Kubernetes 试手了!

    任务 2. Kubernetes 快速演示

    要开始使用 Kubernetes,最简单的方法就是使用 kubectl create 命令。

    1. 运行以下命令,启动 nginx 容器的一个实例:
    kubectl create deployment nginx --image=nginx:1.10.0

    Kubernetes 已经创建了一个 Deployment 对象,我们稍后再介绍 Deployment 对象,目前您只需要了解一点,Deployment 对象可以使 Pod 保持正常运行状态,即便是运行 Pod 的节点发生故障,也不会受到影响。

    在 Kubernetes 中,所有容器都在 Pod 中运行。

    1. 使用 kubectl get pods 命令查看正在运行的 nginx 容器:
    kubectl get pods
    1. 当 nginx 容器的状态变为“Running”之后,您可以使用 kubectl expose 命令向 Kubernetes 外部公开该容器:
    kubectl expose deployment nginx --port 80 --type LoadBalancer

    刚刚发生了什么?Kubernetes 在后台创建了一个具有公共 IP 地址的外部负载均衡器。访问这个公共 IP 地址的任何客户端都会被路由到服务背后的 Pod。在本例中,这个 Pod 就是 nginx Pod。

    1. 现在使用 kubectl get services 命令列出服务:
    kubectl get services 注意:为您的服务填充 ExternalIP 字段可能需要几秒钟时间。这很正常,只需每隔几秒钟重新运行 kubectl get services 命令,直至字段中填充数据。
    1. 在此命令中添加外部 IP,以便远程连接 Nginx 容器:
    curl http://<外部 IP>:80

    成功了!Kubernetes 通过 kubectl run 和 expose 命令,为用户提供了开箱即用又简单易用的工作流。

    验证您已完成的任务

    点击下方的检查我的进度,以检查您的实验进度。如果您成功创建了 Kubernetes 集群并部署了 Nginx 容器,就会看到一个评估分数。

    创建 Kubernetes 集群并启动 Nginx 容器

    我们已经简单了解了 Kubernetes,接下来深入探索一下每个组件和抽象。

    任务 3. Pod

    Pod 是 Kubernetes 的核心。

    Pod 代表并保存着由一个或多个容器构成的集合。通常情况下,如果您的多个容器彼此之间存在硬性依赖关系,则可以将它们封装到一个 Pod 中。

    此示例中有一个包含单体式应用和 nginx 容器的 Pod。

    Pod 中还包含一系列。卷就是数据磁盘,其存在时间与 Pod 一样长,可供该 Pod 中的容器使用。Pod 为其内容提供了一个共享命名空间,这就意味着我们的示例 Pod 中的两个容器可以与互相通信,并且还共享挂接的卷。

    各 Pod 之间还共享一个网络命名空间。这意味着每个 Pod 有一个 IP 地址。

    接下来,我们更深入地探索 Pod。

    任务 4. 创建 Pod

    Pod 可使用 Pod 配置文件创建。请花些时间了解单体式应用 Pod 配置文件。

    1. 切换到下面的目录:
    cd ~/orchestrate-with-kubernetes/kubernetes
    1. 运行以下命令:
    cat pods/monolith.yaml

    输出显示了打开的配置文件:

    apiVersion: v1 kind: Pod metadata: name: monolith labels: app: monolith spec: containers: - name: monolith image: kelseyhightower/monolith:1.0.0 args: - "-http=0.0.0.0:80" - "-health=0.0.0.0:81" - "-secret=secret" ports: - name: http containerPort: 80 - name: health containerPort: 81 resources: limits: cpu: 0.2 memory: "10Mi"

    这里有几点需要注意。您会看到:

    • 您的 Pod 由一个容器(单体式应用)构成。
    • 在这个容器启动时,您向其传递了几个参数。
    • 您为 http 流量打开了 80 端口。
    1. 使用 kubectl 命令创建单体式应用 Pod:
    kubectl create -f pods/monolith.yaml
    1. 检查您的 Pod。使用 kubectl get pods 命令列出默认命名空间内运行的所有 Pod:
    kubectl get pods 注意:单体式应用 Pod 可能需要几秒钟的时间才能启动并运行。首先要从 Docker Hub 中拉取单体式应用容器映像,之后才能运行它。
    1. 在 Pod 进入运行状态后,使用 kubectl describe 命令获得有关单体式应用 Pod 的更多信息:
    kubectl describe pods monolith

    您会看到有关单体式应用 Pod 的大量信息,包括 Pod IP 地址和事件日志。在进行问题排查时,会用到这些信息。

    借助 Kubernetes,您只需在配置文件中描述 Pod 即可轻松创建 Pod,并且可以在 Pod 运行时轻松查看其信息。至此,您已经具备了创建部署所需的全部 Pod 的能力!

    任务 5. 与 Pod 交互

    默认情况下,系统会为 Pod 分配一个专用 IP 地址,从集群外部无法访问 Pod。使用 kubectl port-forward 命令将本地端口映射到单体式应用 Pod 内的一个端口。

    注意:从此时开始,实验要求您在多个 Cloud Shell 标签页中工作,以设置 Pod 之间的通信。在第二个或第三个命令 shell 中执行的任何命令都将在命令的说明中指明。
    1. 打开第二个 Cloud Shell 终端。现在您有了两个终端,一个用来运行 kubectl port-forward 命令,另一个用来发出 curl 命令。

    2. 第 2 个终端中,运行以下命令设置端口转发:

    kubectl port-forward monolith 10080:80
    1. 现在,在第 1 个终端内,开始使用 curl 与您的 Pod 交互:
    curl http://127.0.0.1:10080

    没错!您的容器返回了一条非常友好的问候:“hello”。

    1. 现在,使用 curl 命令,看看访问一个安全端点时会发生什么情况:
    curl http://127.0.0.1:10080/secure

    糟糕。

    1. 尝试登录,以便从单体式应用获取一个身份验证令牌:
    curl -u user http://127.0.0.1:10080/login
    1. 在看到登录提示时,使用超级机密密码“password”登录。

    登录会引发系统显示一个 JWT 令牌。

    1. Cloud Shell 不能很好地处理长字符串的复制,因此我们为令牌创建一个环境变量。
    TOKEN=$(curl http://127.0.0.1:10080/login -u user|jq -r '.token')
    1. 在系统提示输入主机密码时,再次输入超级机密密码“password”。

    2. 使用以下命令复制令牌,随后通过 curl 使用该令牌访问该安全端点:

    curl -H "Authorization: Bearer $TOKEN" http://127.0.0.1:10080/secure

    此时,您应该会收到应用返回的一条响应,表明一切重归正常。

    1. 使用 kubectl logs 命令查看单体式应用 Pod 的日志。
    kubectl logs monolith
    1. 打开第 3 个终端,使用 -f 标志获得实时日志流:
    kubectl logs -f monolith
    1. 如果您在第 1 个终端内使用 curl 与单体式应用交互,则可以看到日志更新(在第 3 个终端内):
    curl http://127.0.0.1:10080
    1. 使用 kubectl exec 命令在单体式应用 Pod 内运行交互式 shell。如果您想在容器内进行问题排查,这会非常方便:
    kubectl exec monolith --stdin --tty -c monolith -- /bin/sh
    1. 例如,在您通过 shell 进入单体式应用容器之后,可以使用 ping 命令测试外部连接:
    ping -c 3 google.com
    1. 在此交互式 shell 中完成操作后,请务必退出登录。
    exit

    您可以看到,与 Pod 交互就像使用 kubectl 命令一样轻松。如果您需要远程访问容器,或者获取登录 shell,Kubernetes 提供了执行这些操作所需的一切。

    任务 6. Service

    Pod 的性质决定了它们无法持久存在。Pod 可能会出于多种原因停止或启动,比如活跃度或就绪性检查失败,而这会造成问题。

    如果您想与一组 Pod 通信,会发生什么情况?在重新启动后,它们的 IP 地址可能会发生变化。

    此时就要用到 Service。Service 为 Pod 提供了稳定的端点。

    Service 使用标签确定它们在哪个 Pod 上运行。如果 Pod 具有正确的标签,Service 会自动选择并公开 Pod。

    Service 所提供的针对一组 Pod 的访问权限级别取决于 Service 的类型。Service 目前有三种类型:

    • ClusterIP(内部):这是默认类型,表示此 Service 仅在集群内部可见
    • NodePort:为集群中的每个节点分配一个可从外部访问的 IP 地址
    • LoadBalancer:添加来自云服务提供商的负载均衡器,将流量从服务转发到其中的节点

    接下来您将学习如何执行以下操作:

    • 创建 Service
    • 使用标签选择器向外部公开限定的一组 Pod

    任务 7. 创建 Service

    您必须先创建可处理 https 流量的安全 Pod,然后才能创建 Service。

    1. 如果您变更过目录,请务必返回到 ~/orchestrate-with-kubernetes/kubernetes 目录:
    cd ~/orchestrate-with-kubernetes/kubernetes
    1. 查看单体式应用服务配置文件:
    cat pods/secure-monolith.yaml
    1. 创建 secure-monolith Pod 及其配置数据:
    kubectl create secret generic tls-certs --from-file tls/ kubectl create configmap nginx-proxy-conf --from-file nginx/proxy.conf kubectl create -f pods/secure-monolith.yaml

    现在,您有了一个安全 Pod,可以对外公开 secure-monolith Pod 了。为此,您需要创建一个 Kubernetes Service。

    1. 查看单体式应用服务配置文件:
    cat services/monolith.yaml

    (输出)

    kind: Service apiVersion: v1 metadata: name: "monolith" spec: selector: app: "monolith" secure: "enabled" ports: - protocol: "TCP" port: 443 targetPort: 443 nodePort: 31000 type: NodePort 注意事项:

    * 有一个选择器可用于自动查找并公开带有 app: monolithsecure: enabled 标签的所有 Pod。

    * 现在,您必须公开 nodeport,这样才能将外部流量从 31000 端口转发到 nginx(443 端口)。

    1. 使用 kubectl create 命令,通过单体式应用服务配置文件创建单体式应用 Service:
    kubectl create -f services/monolith.yaml

    (输出)

    service/monolith created

    验证您已完成的任务

    点击下方的检查我的进度,以检查您的实验进度。如果您成功创建了单体式应用 Pod 和 Service,就会看到一个评估分数。

    创建单体式应用 Pod 和 Service

    您是使用端口公开 Service 的。因此,如果有另外一个应用尝试绑定到您的某个服务器上的 31000 端口,就有可能发生端口冲突。

    通常情况下,Kubernetes 会处理此类端口分配。在本实验中,您选择了一个端口,因此稍后可以更轻松地配置健康检查。

    1. 使用 gcloud compute firewall-rules 命令,允许流量传输到公开的 nodeport 上的单体式应用服务:
    gcloud compute firewall-rules create allow-monolith-nodeport \ --allow=tcp:31000

    验证您已完成的任务

    点击下方的检查我的进度,以检查您的实验进度。如果您成功创建了一条防火墙规则,允许在 31000 端口上传输 TCP 流量,就会看到一个评估分数。

    允许流量传输到公开的 nodeport 上的单体式应用服务

    至此,我们已经设置好了一切,您应该能从集群外部访问 secure-monolith 服务,而不需要使用端口转发。

    1. 首先,获取其中一个节点的外部 IP 地址。
    gcloud compute instances list
    1. 然后尝试使用 curl 访问 secure-monolith 服务:
    curl -k https://<外部 IP>:31000

    糟糕!超时了。哪里出问题了?

    注意:现在来进行一次简短的知识测验。

    请使用以下命令回答下面的问题:

    kubectl get services monolith

    kubectl describe services monolith

    问题:

  • 您为什么无法获得单体式应用服务的响应?
  • 单体式应用服务有多少个端点?
  • Pod 必须具有什么标签才会被单体式应用服务选择?
  • 提示:这与标签有关。您将在下一部分中解决此问题。

    任务 8. 向 Pod 添加标签

    单体式应用服务目前没有端点。排查此类问题的方法之一是结合标签查询使用 kubectl get pods 命令。

    1. 可以看到,您目前运行的 Pod 中有几个 Pod 带有 monolith 标签。
    kubectl get pods -l "app=monolith"
    1. 如果执行“app=monolith”和“secure=enabled”查询会有什么结果?
    kubectl get pods -l "app=monolith,secure=enabled"

    请注意,此标签查询未显示任何结果。您似乎需要为 Pod 添加“secure=enabled”标签。

    1. 使用 kubectl label 命令,为 secure-monolith Pod 添加缺失的 secure=enabled 标签。然后,您可以检查标签是否已更新。
    kubectl label pods secure-monolith 'secure=enabled' kubectl get pods secure-monolith --show-labels
    1. 此时,您的 Pod 已使用了正确的标签,我们来查看一下单体式应用服务的端点列表:
    kubectl describe services monolith | grep Endpoints

    现在有一个端点了!

    1. 再次访问我们的一个节点来检验一下。
    gcloud compute instances list curl -k https://<外部 IP>:31000

    成功了!终于连接成功。

    验证您已完成的任务

    点击下方的检查我的进度,以检查您的实验进度。如果您成功为单体式应用 Pod 添加了标签,就会看到一个评估分数。

    向 Pod 添加标签

    任务 9. 使用 Kubernetes 部署应用

    本实验的目标是帮您为在生产环境中扩缩和管理容器做好准备。此时就要用到 Deployment。Deployment 是确保运行的 Pod 数量等于所需 Pod 数量(这个数量由用户指定)的声明式方法。

    Deployment 的主要优势在于,它能抽离 Pod 管理中的低层级细节。在后台,Deployment 使用副本集管理 Pod 的启动和停止。如果需要更新或扩缩 Pod,Deployment 会处理相应情况。在 Pod 出于某些原因发生故障时,Deployment 还能处理 Pod 的重启。

    我们来看一个简单的例子:

    Pod 与用于创建 Pod 的节点的生命周期相关联。在上面的例子中,节点 3 发生了故障(致使一个 Pod 随之停止)。您的 Deployment 创建了一个新 Pod,并在节点 2 上启动了这个 Pod,因此您不必手动创建新 Pod 并为其寻找节点。

    这真的是太棒了!

    下面我们将您学到的 Pod 和 Service 相关知识整合起来,使用 Deployment 将单体式应用拆分为较小的 Service。

    任务 10. 创建 Deployment

    您需要将该单体式应用拆分为三个独立的部分:

    • auth - 为通过身份验证的用户生成 JWT 令牌。
    • hello - 问候通过身份验证的用户。
    • frontend - 将流量路由到 auth 和 hello 服务。

    您可以创建 Deployment 了(每个服务一个)。随后,您将为 auth 和 hello Deployment 定义内部服务,为 frontend Deployment 定义外部服务。完成之后,您就可以与微服务进行交互,就像与单体式应用交互一样,不同之处在于,现在每一个部分都可以独立扩缩和部署!

    1. 首先查看 auth Deployment 配置文件。
    cat deployments/auth.yaml

    (输出)

    apiVersion: apps/v1 kind: Deployment metadata: name: auth spec: selector: matchlabels: app: auth replicas: 1 template: metadata: labels: app: auth track: stable spec: containers: - name: auth image: "kelseyhightower/auth:2.0.0" ports: - name: http containerPort: 80 - name: health containerPort: 81 ...

    该 Deployment 会创建 1 个副本,并且您使用的是 auth 容器的 2.0.0 版本。

    当您运行 kubectl create 命令创建 auth Deployment 时,该命令将生成一个与 Deployment 清单中的数据相符的 Pod。这表示您可以通过更改 Replicas 字段中指定的数值来调整 Pod 数量。

    1. 继续操作,创建 Deployment 对象:
    kubectl create -f deployments/auth.yaml
    1. 现在,可以为 auth Deployment 创建 Service 了。使用 kubectl create 命令创建 auth Service:
    kubectl create -f services/auth.yaml
    1. 下面,执行相同的操作来创建和公开 hello Deployment:
    kubectl create -f deployments/hello.yaml kubectl create -f services/hello.yaml
    1. 再次执行同一过程来创建和公开 frontend Deployment。
    kubectl create configmap nginx-frontend-conf --from-file=nginx/frontend.conf kubectl create -f deployments/frontend.yaml kubectl create -f services/frontend.yaml 注意: 您还需要执行一个创建 frontend 的步骤,因为您需要使用该容器存储一些配置数据。
    1. 获取 frontend 的外部 IP 地址,然后对其执行 curl 命令,以便与其交互:
    kubectl get services frontend 注意:生成外部 IP 地址可能需要一分钟时间。如果 EXTERNAL-IP 列的状态为 pending,请再次运行上述命令。 curl -k https://<外部 IP>

    此时,您会收到 hello 响应!

    验证您已完成的任务

    点击下方的检查我的进度,以检查您的实验进度。如果您成功创建了 Auth Deployment、Hello Deployment 和 Frontend Deployment,就会看到一个评估分数。

    创建 Deployment(Auth、Hello 和 Frontend)

    恭喜!

    恭喜!在本实验中,您学习了如何创建 Kubernetes 集群、如何使用 kubectl 部署和管理 Docker 容器,以及如何使用 Kubernetes 的 Deployment 和 Service 对象将应用分解成多个微服务。您还学会了如何与 Pod 和 Service 等对象交互,以及如何使用 Kubernetes 部署应用。现在,您可以使用一系列 Deployment 和 Service,在 Kubernetes 上部署复杂的应用了。

    后续步骤/了解详情

    • 您可以在 X社区博客上了解 Kubernetes 的最新动态。
    • 请注意,Kubernetes 是 GitHub 上托管的一个开源项目 (http://kubernetes.io/)。我们衷心欢迎您的反馈意见和积极贡献。

    Google Cloud 培训和认证

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

    上次更新手册的时间:2024 年 2 月 5 日

    上次测试实验的时间:2024 年 2 月 5 日

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

    上一步 下一步

    准备工作

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

    此内容目前不可用

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

    太好了!

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

    一次一个实验

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

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

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