概览
本实验将帮助您熟悉 Google Cloud 基于 Web 的界面。本实验将提供两个集成式环境:
名为 Google Cloud 控制台的 GUI 环境
名为 Cloud Shell 的命令行界面,其中已预装 Cloud SDK 提供的命令
在本课程中,您将使用这两种环境。
关于 Google Cloud 控制台,您需要知道以下几点:
Google Cloud 控制台正在持续开发中,因此图形布局偶尔会发生变化。这些更改通常是为了配合 Google Cloud 新功能或技术变更,会导致工作流略有不同。
您可以在 Google Cloud 控制台中执行大多数常见的 Google Cloud 操作。有时,新功能会先在 Cloud SDK 中实现,然后才在 Google Cloud 控制台中提供。
Google Cloud 控制台可以快速处理某些活动。Google Cloud 控制台可以代表您执行多个操作,这些操作在命令行中可能需要很多步骤。
如需实现自动化,Cloud SDK 中的命令是非常实用的工具。
目标
在本实验中,您将学习如何执行以下任务:
了解如何访问 Google Cloud 控制台和 Cloud Shell
熟悉 Google Cloud 控制台
熟悉 Cloud Shell 功能,包括 Cloud Shell 编辑器
使用 Google Cloud 控制台和 Cloud Shell 创建存储桶、虚拟机和服务账号
在 Cloud Shell 中执行其他命令
实验设置
访问 Qwiklabs
对于每个实验,您都会免费获得一个新的 Google Cloud 项目及一组资源,它们都有固定的使用时限。
点击开始实验 按钮。如果该实验需要付费,系统会打开一个弹出式窗口供您选择付款方式。左侧是实验详细信息 面板,其中包含以下各项:
打开 Google Cloud 控制台 按钮
剩余时间
进行该实验时必须使用的临时凭据
帮助您逐步完成本实验所需的其他信息(如果需要)
点击打开 Google Cloud 控制台 (如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接 )。
该实验会启动资源并打开另一个标签页,显示登录 页面。
提示 :将这些标签页安排在不同的窗口中,并排显示。
注意 :如果您看见选择账号 对话框,请点击使用其他账号 。
如有必要,请复制下方的用户名 ,然后将其粘贴到登录 对话框中。
{{{user_0.username | "<用户名>"}}}
您也可以在实验详细信息 面板中找到用户名 。
点击下一步 。
复制下面的密码 ,然后将其粘贴到欢迎 对话框中。
{{{user_0.password | "<密码>"}}}
您也可以在实验详细信息 面板中找到密码 。
点击下一步 。
重要提示: 您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。
注意 :在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
继续在后续页面中点击以完成相应操作:
接受条款及条件。
由于这是临时账号,请勿添加账号恢复选项或双重验证。
请勿注册免费试用。
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
注意 :如需查看列有 Google Cloud 产品和服务的菜单,请点击左上角的导航菜单 ,或在搜索 字段中输入服务或产品的名称。
完成初始登录步骤后,系统会显示项目信息中心。
任务 1. 探索 Google Cloud 控制台
在此任务中,您将探索 Google Cloud 控制台并创建资源。
确认已选择您的项目
在 Google Cloud 控制台标题栏中,点击选择项目 下拉列表,然后选择 Qwiklabs 随身份验证凭据提供的项目 ID。
项目 ID 的格式为:[qwiklabs-gcp- ] 后跟一长串十六进制数字。
点击取消 关闭对话框。
标题栏应该会显示项目 ID,如以下屏幕截图所示。Qwiklabs 环境中的每个实验都有唯一的项目 ID 和唯一的身份验证凭据。
前往 Google Cloud Storage 并创建存储桶
使用 Cloud Storage,您可以在全球范围内随时存储和检索任意数量的数据。您可以在各种各样的场景中使用 Cloud Storage,包括传送网站内容、存储数据以用于归档和灾难恢复,或者通过直接下载向用户分发大型数据对象。
Cloud Storage 存储桶必须具有全局唯一的名称。在组织中,您应该遵循 Google Cloud 有关 Cloud Storage 最佳实践的指南 。对于本实验,由于 Google Cloud 项目 ID 具有全局唯一性,因此使用 Qwiklabs 为我们创建的 Google Cloud 项目 ID,我们就能轻松为存储桶设置唯一名称。
在 Google Cloud 控制台的导航菜单 ( ) 中,依次点击 Cloud 概览 > 信息中心 。
在所显示屏幕的信息中心 标签页中,项目信息 部分会显示您的 Google Cloud 项目 ID。
选择并复制项目 ID。这个项目 ID 是 Qwiklabs 为您创建的,其格式为:[qwiklabs-gcp- ] 后跟一长串十六进制数字。
在 Google Cloud 控制台的导航菜单 ( ) 中,依次点击 Cloud Storage > 存储桶 。
点击创建存储桶 。
对于存储桶名称,粘贴您在之前的步骤中复制的 Google Cloud 项目 ID 字符串。实验说明将以 [BUCKET_NAME]
指代您输入的名称。
点击继续 。
对于位置类型 ,选择区域 ,并从下拉菜单中选择“ ”。
点击继续 。
点击选择如何控制对对象的访问权限 ,取消选中禁止公开访问此存储桶 ,然后选择精细控制 。
点击继续 。
请将其他所有值保留为默认值。
点击创建 。
注意 :Google Cloud 控制台有一个通知 ( ) 图标。这里有时会提供来自底层命令的反馈。您可以点击该图标来查看通知,以了解其他信息和历史记录。
创建虚拟机 (VM) 实例
Google Compute Engine 提供 Google 数据中心及其“网络即服务”中运行的虚拟机。Google Kubernetes Engine 使用 Compute Engine 作为其架构的一个组件。因此在了解 Google Kubernetes Engine 之前,掌握一些关于 Compute Engine 的知识会很有帮助。
在导航菜单 ( ) 中,点击 Compute Engine > 虚拟机实例 。
点击创建实例 。
对于名称 ,输入 first-vm 作为实例的名称。
对于区域 ,选择“ ”。
对于可用区 ,选择“ ”。
对于机器类型 ,请查看提供的选项。
注意: 机器类型菜单列出了虚拟 CPU 的数量、内存容量和一个符号名称(例如 e2-medium )。该符号名称是您在使用 gcloud
命令创建虚拟机时用来选择机器类型的参数。区域、可用区和机器类型的右侧会显示每月的估算费用。
如需查看估算费用的明细,请查看机器类型 列表右侧的每月估算费用 。
对于机器类型 ,请依次点击标准 > e2-standard-2 。
费用是如何变化的?
对于机器类型 ,请依次点击共享核心 > e2-micro 。
Micro 类型是一种共享核心虚拟机,费用比较低廉。
在左侧窗格中,找到网络 ,然后在防火墙 下选择允许 HTTP 流量 。
将其他设置保留默认值,然后点击创建 。
等待新虚拟机创建完成。
查看虚拟机详细信息
在虚拟机实例 页面上,点击虚拟机名称 first-vm 。
在机器配置 中,记下 CPU 平台 的值。
点击顶部的铅笔图标,以修改 first-vm
实例。
注意: 您无法更改正在运行的 Google Cloud 虚拟机的机器类型、CPU 平台或可用区。您可以添加网络标记,允许来自互联网的特定网络流量通过防火墙。
虚拟机的某些属性是虚拟机不可或缺的一部分,是在创建虚拟机时设置的。这些属性无法更改。其他属性可以修改。例如您可以添加磁盘,确定在删除实例时是否删除启动磁盘。
向下滚动到管理 部分,并检查可用性政策 。
注意: Compute Engine 提供的 Spot 虚拟机实例每小时的费用更低,但可能随时被 Google Cloud 终止。这些 Spot 实例可以为您节省大量费用,但您必须确保中断这些工作负载不会对您造成负面影响。
非 Spot 实例无法转换为 Spot 实例。此选项只能在创建虚拟机时更改。
如果虚拟机由于任何原因(例如服务中断或硬件故障)停止,自动重启功能会将其再次启动。这是您希望的运作方式吗?您的应用是否具有幂等性(其代码可以正确处理第二次启动)?
在主机维护期间,虚拟机会设置为实时迁移。但是,您可以选择终止虚拟机,而不是迁移。
如果进行更改,有时可能需要几分钟才能生效,特别是在涉及到网络更改的情况下,如添加防火墙或更改外部 IP。
点击取消 。
创建 IAM 服务账号
IAM 服务账号是一种特殊类型的 Google 账号,属于应用或虚拟机,不属于个人最终用户。
在导航菜单 中,点击 IAM 和管理 > 服务账号 。
点击 + 创建服务账号 。
在服务账号详情 页面,将服务账号名称 指定为 test-service-account
。
点击创建并继续 。
在向此服务账号授予对项目的访问权限 页面上,依次选择基本 > Editor 来指定角色。
点击继续 。
点击完成 。
在服务账号 页面上,转至 test-service-account
的最右侧,然后点击三点状图标。
点击管理密钥 。
点击添加密钥 。
选择创建新密钥 。
选择 JSON 作为密钥类型。
点击创建 。
系统会下载一个 JSON 密钥文件。在稍后的步骤中,您需要找到这个密钥文件并将其上传到虚拟机。
点击关闭 。
点击检查我的进度 以验证是否完成了以下目标。
创建存储桶、具有必要防火墙规则的虚拟机实例和 IAM 服务账号
任务 2. 了解 Cloud Shell
Cloud Shell 让您可以直接在浏览器中通过命令行访问云端资源。借助 Cloud Shell,您可以随时使用经过全面身份验证的最新 Cloud SDK 命令行工具,例如 gcloud。
Cloud Shell 提供以下特性和功能:
Compute Engine 临时虚拟机
可在浏览器中使用命令行访问实例
5 GB 永久性磁盘存储空间 ($HOME dir
)
预装的 Cloud SDK 和其他工具。
gcloud
:适用于 Compute Engine、Google Kubernetes Engine (GKE) 和许多 Google Cloud 服务
gcloud storage
和 gsutil
:适用于 Cloud Storage
kubectl
:适用于 GKE 和 Kubernetes
bq
:适用于 BigQuery
针对 Java、Go、Python、Node.js、PHP 和 Ruby 的语言支持
网页预览功能
用于访问资源和实例的内置授权
系统会回收处于非活跃状态超过 1 小时的 Cloud Shell 实例。只保留 /home
目录。对系统配置(包括环境变量)所做的任何更改都将在会话切换时丢失。
在此任务中,您将使用 Cloud Shell 创建和检查一些资源。
打开 Cloud Shell 并探索其特征
在 Google Cloud 控制台标题栏中,点击激活 Cloud Shell ( )。
出现提示时,点击继续 。
Cloud Shell 会在 Google Cloud 控制台窗口底部打开。
以下图标位于 Cloud Shell 工具栏的最右侧:
隐藏/恢复: 点击此图标可隐藏或恢复窗口,让您无需关闭 Cloud Shell 即可使用 Google Cloud 控制台的所有功能。
在新窗口中打开: 在发出个别命令时,Cloud Shell 位于 Google Cloud 控制台底部会很方便。但在您编辑文件或想要查看命令的完整输出时,点击此图标就能在一个完整尺寸的终端窗口中显示 Cloud Shell。
关闭所有标签页 :点击此图标会关闭 Cloud Shell。每次关闭 Cloud Shell 时,虚拟机将被回收,所有机器上下文都将丢失。但是,在下次启动 Cloud Shell 时,您仍然可以使用存储在主目录中的数据。
使用 Cloud Shell 设置此任务所用的环境变量
在 Cloud Shell 中,使用以下命令定义此任务中使用的环境变量。
将 [BUCKET_NAME] 替换为任务 1 中第一个存储桶的名称。
将 [BUCKET_NAME_2] 替换为您选择的一个全局唯一名称。
在 Cloud Shell 中,执行如下命令创建环境变量:
MY_BUCKET_NAME_1=[BUCKET_NAME]
MY_BUCKET_NAME_2=[BUCKET_NAME_2]
MY_REGION={{{project_0.default_region | "REGION"}}}
注意: 当您使用 Cloud Shell 或编写脚本时,创建环境变量是一种很好的做法。您可以轻松且一致地重复使用这些环境变量,确保工作更不容易出错。
注意 :确保将 [BUCKET_NAME]
等整个占位符字符串替换为您选择的唯一名称,例如 MY_BUCKET_NAME_1=unique_bucket_name
。
将先前创建的凭据文件移至 Cloud Shell 中
在前面的任务中,您在创建首个 IAM 服务账号时下载了一个 JSON 编码的凭据文件。
在您的本地工作站上,找到您刚刚下载的 JSON 密钥并将该文件重命名为 credentials.json
在 Cloud Shell 中,点击 Cloud Shell 工具栏中的三点状菜单图标 ( ),显示更多选项。
点击上传 ,从本地机器上选择 credentials.json
文件。
点击打开 。
点击上传 以将 credentials.json
传输到 Cloud Shell 虚拟机。
点击 X 图标关闭文件上传弹出式窗口。
在 Cloud Shell 中,输入 ls 并按下 ENTER 键,确认该文件已上传。
创建第二个 Cloud Storage 存储桶并在 Google Cloud 控制台中确认
您可以使用 gcloud storage
和 gsutil
命令,通过命令行对 Cloud Storage 执行操作。
此任务中,您将在 Cloud Shell 中使用 gcloud storage
命令。
在 Cloud Shell 中,使用 gcloud storage
命令创建存储桶:
gcloud storage buckets create gs://$MY_BUCKET_NAME_2 --location={{{project_0.default_region | REGION}}}
在系统提示时点击授权 。
在 Google Cloud 控制台的导航菜单 ( ) 中,依次点击 Cloud Storage > 存储桶 ,或点击刷新 (如果您已在 Cloud Storage 页面中)。
第二个存储桶应该显示在存储桶 列表中。
使用 gcloud 命令行创建第二个虚拟机
在 Cloud Shell 中执行以下命令,列出给定区域内的所有可用区:
gcloud compute zones list | grep $MY_REGION
从列表的第一列中选择一个可用区。请注意,Google Cloud 可用区名称为其区域名称后面加上一个连字符和一个字母。
您可以选择任务 1 中第一个虚拟机使用的可用区,也可以选择其他可用区。
执行以下命令,将您选择的可用区存储在一个环境变量中。
将 [ZONE]
替换为您选择的可用区名称:
MY_ZONE=[ZONE]
执行以下命令,将该可用区设置为默认可用区:
gcloud config set compute/zone $MY_ZONE
执行以下命令,将名称存储在用于创建虚拟机的环境变量中。第二个虚拟机名为 second-vm
:
MY_VMNAME=second-vm
在本任务中之前设置的默认可用区中创建一个虚拟机,使用新的环境变量来分配虚拟机名称:
gcloud compute instances create $MY_VMNAME \
--machine-type "e2-standard-2" \
--image-project "debian-cloud" \
--image-family "debian-11" \
--subnet "default"
列出项目中的虚拟机实例:
gcloud compute instances list
您将在列表中看到新创建的虚拟机和第一个虚拟机。
在 Google Cloud 控制台的导航菜单 ( ) 中,依次点击 Compute Engine > 虚拟机实例 。就像 gcloud compute instances list
的输出,您将看到创建的两个虚拟机。
查看 External IP 列。请注意,您创建的第一个虚拟机的外部 IP 地址显示为一个链接(如果需要,可点击隐藏信息面板 按钮显示“外部 IP”列)。由于您将这个虚拟机的防火墙配置为允许 HTTP 流量,因此 Google Cloud 控制台才提供链接。
点击首个虚拟机的外部 IP 列中的链接。浏览器将在一个新的浏览器标签页中显示 “连接被拒绝”消息。出现此消息的原因是,尽管有一个打开的防火墙端口让 HTTP 流量传入虚拟机,但没有正在运行的 Web 服务器。关闭刚刚打开的浏览器标签页。
注意 :如果您看到提示不支持安全连接 的弹出式窗口,请点击继续访问网站 进行下一步。
使用 gcloud 命令行创建第二个服务账号
在 Cloud Shell 中,执行如下命令以创建新的服务账号:
gcloud iam service-accounts create test-service-account2 --display-name "test-service-account2"
注意: 如果看到如下输出,请输入 Y 并按下 ENTER 键:
API [iam.googleapis.com] not enabled on project [560255523887].Would
you like to enable and retry (this will take a few minutes)? (y/N)?
在 Google Cloud 控制台的导航菜单 ( ) 中,依次点击 IAM 和管理 > 服务账号 。
注意: 刷新该页面,直到您看到 test-service-account2 。
点击检查我的进度 以验证是否完成了以下目标。
创建第二个存储桶、虚拟机实例和 IAM 服务账号
在 Cloud Shell 中执行以下命令,为第二个服务账号授予 Viewer
角色:
gcloud projects add-iam-policy-binding $GOOGLE_CLOUD_PROJECT --member serviceAccount:test-service-account2@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com --role roles/viewer
注意 :GOOGLE_CLOUD_PROJECT
是一个在 Cloud Shell 中自动填充的环境变量,设置为当前上下文的项目 ID。
在 Google Cloud 控制台的导航菜单 ( ) 中,依次点击 IAM 和管理 > IAM 。
您将看到系统将新服务账号 test-service-account2
列为 Viewer
角色的成员。
任务 3. 在 Cloud Shell 中使用 Cloud Storage
将文件下载到 Cloud Shell 并将其复制到 Cloud Storage
将一张猫的图片从 Google 提供的 Cloud Storage 存储桶复制到 Cloud Shell:
gcloud storage cp gs://cloud-training/ak8s/cat.jpg cat.jpg
将该文件复制到您之前创建的首个存储桶内:
gcloud storage cp cat.jpg gs://$MY_BUCKET_NAME_1
将该文件从第一个存储桶复制到第二个存储桶:
gcloud storage cp gs://$MY_BUCKET_NAME_1/cat.jpg gs://$MY_BUCKET_NAME_2/cat.jpg
在 Google Cloud 控制台的导航菜单 ( ) 中,依次点击 Cloud Storage > 存储桶 ,选择您创建的两个存储桶,并确认它们都包含 cat.jpg
文件。
为 Cloud Storage 对象设置访问权限控制列表
如需获得分配给 cat.jpg
的默认访问权限列表(当您将该图片上传到 Cloud Storage 存储桶时),请执行以下两条命令。
首先,在 Cloud Shell 中执行以下命令:
gsutil acl get gs://$MY_BUCKET_NAME_1/cat.jpg > acl.txt
cat acl.txt
输出应该类似于下面的示例,但具体数字有所不同。此输出显示,任何具有项目的 Owner
、Editor
或 Viewer
角色的人都具有访问权限(Owner 和 Editor 具有 OWNER
访问权限,Viewer 具有 READER
访问权限)。
[
{
"entity": "project-owners-560255523887",
"projectTeam": {
"projectNumber": "560255523887",
"team": "owners"
},
"role": "OWNER"
},
{
"entity": "project-editors-560255523887",
"projectTeam": {
"projectNumber": "560255523887",
"team": "editors"
},
"role": "OWNER"
},
{
"entity": "project-viewers-560255523887",
"projectTeam": {
"projectNumber": "560255523887",
"team": "viewers"
},
"role": "READER"
},
{
"email": "google12345678_student@qwiklabs.net",
"entity": "user-google12345678_student@qwiklabs.net",
"role": "OWNER"
}
]
如需将对象更改为仅限私密访问,请执行如下命令:
gsutil acl set private gs://$MY_BUCKET_NAME_1/cat.jpg
如需验证分配给 cat.jpg
的新 ACL,请执行以下两条命令:
gsutil acl get gs://$MY_BUCKET_NAME_1/cat.jpg > acl-2.txt
cat acl-2.txt
输出应类似于以下示例。
[
{
"email": "google12345678_student@qwiklabs.net",
"entity": "user-google12345678_student@qwiklabs.net",
"role": "OWNER"
}
]
现在,只有对象的原创建者(您的实验账号)拥有 OWNER
访问权限。
在 Cloud Shell 中以服务账号身份进行身份验证
在 Cloud Shell 中,执行如下命令查看当前配置:
gcloud config list
您应该看到如下例所示的输出。在输出中,可用区应该是您在任务 2 中创建第二个虚拟机时设置的可用区。账号和项目应该与您的 Qwiklabs 实验凭据一致。
[component_manager]
disable_update_check = True
[compute]
gce_metadata_read_timeout_sec = 30
zone = {{{project_0.default_zone | "ZONE"}}}
[core]
account = google12345678_student@qwiklabs.net
disable_usage_reporting = False
project = qwiklabs-Google Cloud-1aeffbc5d0acb416
[metrics]
environment = devshell
Your active configuration is: [cloudshell-16441]
在 Cloud Shell 中执行以下命令,通过下载到本地机器然后上传到 Cloud Shell 的凭据 (credentials.json
),将通过身份验证的用户更改为在前面的任务中创建的第一个服务账号:
gcloud auth activate-service-account --key-file credentials.json
Cloud Shell 现在以 test-service-account
身份通过了身份验证。
如需验证活跃账号,请执行如下命令:
gcloud config list
您应该看到如下例所示的输出。活跃账号现已设置为 test-service-account
服务账号。
[component_manager]
disable_update_check = True
[compute]
gce_metadata_read_timeout_sec = 30
zone = {{{project_0.default_zone | "ZONE"}}}
[core]
account = test-service-account@qwiklabs-Google Cloud-1aeffbc5d0acb416.iam.gserviceaccount.com
disable_usage_reporting = False
project = qwiklabs-Google Cloud-1aeffbc5d0acb416
[metrics]
environment = devshell
Your active configuration is: [cloudshell-16441]
如需验证 Cloud Shell 中已获授权的账号列表,请执行如下命令:
gcloud auth list
您应该看到如下例所示的输出。
Credentialed Accounts
ACTIVE:
ACCOUNT: student-03-5165fd82c14b@qwiklabs.net
To set the active account, run:
$ gcloud config set account `ACCOUNT`
如需确认当前账号 (test-service-account
) 无法访问您创建的第一个存储桶中的 cat.jpg
文件,请执行如下命令:
gcloud storage cp gs://$MY_BUCKET_NAME_1/cat.jpg ./cat-copy.jpg
由于您之前在此任务中将有权访问该文件的角色限制为 Owner,因此您应该看到如下例所示的输出。
输出
ERROR: (gcloud.storage.cp) HTTPError 403:
确认当前账号 (test-service-account
) 可以访问您创建的第二个存储桶中的 cat.jpg
文件:
gcloud storage cp gs://$MY_BUCKET_NAME_2/cat.jpg ./cat-copy.jpg
由于没有限制对该文件的访问权限,您应该看到如下例所示的输出。
Copying gs://test-bucket-123/cat.jpg...
- [1 files][ 81.7 KiB/ 81.7 KiB]
Operation completed over 1 objects/81.7 KiB.
如需切换到实验账号,请执行如下命令,将 [USERNAME] 替换为实验说明页面左侧“连接详情”窗格中提供的用户名:
gcloud config set account [USERNAME]
如需确认您可以访问存储桶 [BUCKET_NAME](您创建的第一个存储桶)中的 cat.jpg
文件,请执行如下命令:
gcloud storage cp gs://$MY_BUCKET_NAME_1/cat.jpg ./copy2-of-cat.jpg
您应该看到如下例所示的输出。在对象访问权限控制列表 (ACL) 转换为不公开后,创建存储桶和对象的实验账号仍然是 Owner 角色,因此实验账号依然可以访问该对象。
Copying gs://test-bucket-123/cat.jpg...
- [1 files][ 81.7 KiB/ 81.7 KiB]
Operation completed over 1 objects/81.7 KiB.
让所有人(包括未通过身份验证的用户)都能读取第一个 Cloud Storage 存储桶:
gsutil iam ch allUsers:objectViewer gs://$MY_BUCKET_NAME_1
注意: 此设置适用于在 Cloud Storage 中托管公开网站内容。
在 Cloud 控制台的导航菜单 ( ) 中,依次点击 Cloud Storage > 存储桶 。
选择您创建的具有相应项目 ID 的第一个存储桶。请注意 cat.jpg
文件有一个 Public link
(公开链接)。
点击复制网址 以复制该链接。
在无痕模式下打开新的浏览器标签页,将该链接粘贴到浏览器地址栏。您会看到一张猫的照片,请勿关闭该浏览器标签页。
点击检查我的进度 以验证是否完成了以下目标。
在 Cloud Shell 中使用 Cloud Storage
任务 4. 探索 Cloud Shell 编辑器
在此任务中,您将探索如何使用 Cloud Shell 代码编辑器。
打开 Cloud Shell 编辑器
在 Cloud Shell 中,点击打开编辑器 图标 ( )。
在 Cloud Shell 编辑器中,依次点击文件 > 打开文件夹 。
点击确定 。
文件夹打开后,左侧窗格中会显示文件和目录列表。
点击打开终端 ,然后在 Cloud Shell 中执行以下命令,以克隆 git
代码库:
git clone https://github.com/googlecodelabs/orchestrate-with-kubernetes.git
orchestrate-with-kubernetes
文件夹将出现在 Cloud Shell 编辑器窗口的左侧窗格中。
在 Cloud Shell 中,执行如下命令创建 test 目录:
mkdir test
test
文件夹现在显示在 Cloud Shell 编辑器窗口的左侧窗格中。
在 Cloud Shell 编辑器中,点击 orchestrate-with-kubernetes
左侧的箭头展开该文件夹。
在左侧窗格中,点击 cleanup.sh
文件,在 Cloud Shell 编辑器窗口的右窗格中打开它。
在 cleanup.sh
文件的最后一行添加以下文本:
echo Finished cleanup!
注意: 不需要执行任何操作来保存您的工作。
在 Cloud Shell 中,执行以下命令切换目录并显示 cleanup.sh
的内容:
cd orchestrate-with-kubernetes
cat cleanup.sh
确认 cat cleanup.sh
的输出包含您添加的文本行。
在 Cloud Shell 代码编辑器中,右键点击 orchestrate-with-kubernetes
文件夹,然后选择新建文件 。
注意: 如果系统弹出一个提示,要求您“查看复制到剪贴板的文字和图片”,请点击允许 。
将文件命名为 index.html 。
点击保存 。
在右侧窗格中,粘贴如下 HTML 文本:
<html><head><title>Cat</title></head>
<body>
<h1>Cat</h1>
<img src="REPLACE_WITH_CAT_URL">
</body></html>
注意: 使用本地计算机的键盘快捷键进行粘贴:如果使用的是 Mac 计算机,请按 Cmd + V;如果使用的是 Windows 或 Linux 计算机,请按 Ctrl + V。
将字符串 REPLACE_WITH_CAT_URL
替换为先前任务中猫图片的网址。该网址如下所示:
https://storage.googleapis.com/qwiklabs-Google Cloud-1aeffbc5d0acb416/cat.jpg
在导航菜单 ( ) 中,点击 Compute Engine > 虚拟机实例 。
在您的 first-vm 所在的行中,点击 SSH 按钮。
在虚拟机上打开的 SSH 登录 窗口中,安装 nginx
Web 服务器:
sudo apt-get remove -y --purge man-db
sudo touch /var/lib/man-db/auto-update
sudo apt-get update
sudo apt-get install nginx
注意 :完成处理可能需要几分钟的时间。如果出现提示,请点击 Y
继续。
在 Cloud Shell 窗口中,将您使用 Cloud Shell 编辑器创建的 HTML 文件复制到虚拟机:
gcloud compute scp index.html first-vm:index.nginx-debian.html --zone={{{project_0.default_zone | "ZONE"}}}
注意: 如果系统询问是否将主机密钥添加到已知主机列表中,请输入 Y。
注意 :如果系统提示您输入口令,请按下 ENTER 键,以空口令作为回应。在系统提示您确认空口令时再次按下 ENTER 键。
在虚拟机的 SSH 登录 窗口中,将 HTML 文件从主目录复制到 nginx
Web 服务器的文档根目录:
sudo cp index.nginx-debian.html /var/www/html
点击检查我的进度 以验证是否完成了以下目标。
安装 nginx Web 服务器并自定义欢迎页面
在导航菜单 ( ) 中,点击 Compute Engine > 虚拟机实例 。
在外部 IP 列中,点击您的 first-vm 对应的链接。如果您看到网站不支持安全连接的消息,请点击继续访问网站 。
一个新的浏览器标签页即会打开,其中的网页将显示这张猫图片。
结束实验
完成实验后,请点击结束实验 。Google Cloud Skills Boost 会移除您使用过的资源并为您清理帐号。
系统会提示您为实验体验评分。请选择相应的星级数,输入评论,然后点击提交 。
星级数的含义如下:
1 颗星 = 非常不满意
2 颗星 = 不满意
3 颗星 = 一般
4 颗星 = 满意
5 颗星 = 非常满意
如果您不想提供反馈,可以关闭该对话框。
如果要留言反馈、提出建议或做出更正,请使用支持 标签页。
版权所有 2020 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。