Compute Engine
借助 Compute Engine,可以在 Google 基础架构上创建能运行各种不同操作系统(包括 Debian、Ubuntu、Suse、Red Hat、CoreOS 等多种 Linux 特色版本以及 Windows Server)的虚拟机。在一个运行速度快且性能极为稳定的系统上,可以运行数以千计的虚拟 CPU。
执行的操作
- 使用 Cloud Console 创建虚拟机。
- 使用 gcloud 命令行创建虚拟机。
- 部署网络服务器并将其连接至虚拟机。
激活 Google Cloud Shell
Google Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。您可以通过 Google Cloud Shell 提供的命令行访问 GCP 资源。
- 在 GCP Console 右上角的工具栏中,点击“打开 Cloud Shell”按钮。
- 点击继续。
配置和连接到环境需要一些时间。如果您连接成功,即表示您已通过身份验证,且相关项目的 ID 会被设为 PROJECT_ID。
通过此命令列出有效的帐号名称:
gcloud auth list
输出:
Credentialed accounts:
- <我的帐号>@<我的域名>.com (active)
//输出示例:
Credentialed accounts:
- google1623327_student@qwiklabs.net
通过此命令列出项目 ID:
gcloud config list project
输出:
[core]
project = <项目 ID>
content_copy
//输出示例:
[core]
project = qwiklabs-gcp-44776a13dea667a6
Task1:通过 Cloud Console 创建新实例
通过 Cloud Console 使用 Compute Engine 新建预定义类型的虚拟机。
- 在 Cloud Console 的导航菜单 () 中,点击 :Compute Engine > VM Instance(虚拟机实例)
首次初始化可能需要一分钟时间。 - 如需创建新实例,请点击创建实例。
- 创建新实例时,您可以配置多种参数。在此实验中,需要用到以下参数:
项目 | Value | 其他信息 |
名称 | gcelab | 虚拟机实例的名称 |
区域 | us-central1(爱荷华) | 有关区域的更多信息,请参阅区域和可用区。 |
可用区 | us-central1-f | 注意:请记住您选择的可用区,稍后会用到它。 |
系列 | N1 | 系列名称 |
机器类型 | 2 个 vCPU | 这是一个 n1-standard-2、双 CPU、7.5GB RAM 实例。机器类型有多种,从微型实例类型,到 32 核/208GB RAM 实例类型,不一而足。注意:新项目有默认的资源配额,这可能会限制 CPU 核心的数量。在此实验之外处理项目时,您可以请求获得更多资源。 |
启动磁盘 | 新的 10 GB 平衡永久性磁盘 操作系统映像:Debian GNU/Linux 10 (buster) | 有多种映像可供选择,包括 Debian、Ubuntu、CoreOS,以及 Red Hat Enterprise Linux 和 Windows Server 等付费映像。 |
防火墙 | 允许 HTTP 流量 | 请选择此选项,以便访问您后续安装的网络服务器。注意:这将自动创建相应的防火墙规则来允许 HTTP 流量通过端口 80。 |
- 点击创建。
新的虚拟机应该会在 1 分钟左右创建完毕。届时,该虚拟机就会出现在虚拟机实例页面中。 - 要使用 SSH 连接至该虚拟机,请点击该虚拟机所在行中的 SSH。
这样即可从您的浏览器中直接启动 SSH 客户端。
Task2:安装 NGINX 网络服务器
NGINX 网络服务器是全球最受欢迎的网络服务器之一,可用来为您的虚拟机建立连接。
- 如需获取 SSH 终端的 root 访问权限,请运行以下命令:
sudo su -
- 以 root 用户的身份更新您的操作系统:
apt-get update
预期输出:
Get:1 http://security.debian.org stretch/updates InRelease [94.3 kB]
3. Ign http://deb.debian.org strech InRelease
4. Get:2 http://deb.debian.org strech-updates InRelease [91.0 kB]
5. ...
- 安装 NGINX:
apt-get install nginx -y
预期输出:
Reading package lists... Done
7. Building dependency tree
8. Reading state information... Done
9. The following additional packages will be installed:
10. ...
- 确认 NGINX 正在运行:
ps auwx | grep nginx
预期输出:
root 2330 0.0 0.0 159532 1628 ? Ss 14:06 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
12. www-data 2331 0.0 0.0 159864 3204 ? S 14:06 0:00 nginx: worker process
13. www-data 2332 0.0 0.0 159864 3204 ? S 14:06 0:00 nginx: worker process
14. root 2342 0.0 0.0 12780 988 pts/0 S+ 14:07 0:00 grep nginx
- 如需查看网页,可以返回 Cloud Console 并点击您虚拟机所在行中的External IP 链接;也可打开一个新的浏览器窗口或标签页,将此外部 IP 值添加至
Task3:使用 gcloud 创建新实例
除了 Cloud Console 以外,还可以使用 Google Cloud Shell 预装的命令行工具 gcloud 来创建虚拟机实例。Cloud Shell 是一个基于 Debian 的虚拟机,其中预装了您需要的所有开发工具(gcloud、git 等),并提供 5GB 的永久性主目录。
注意:如果您以后您希望在自己的机器上尝试此操作,可参阅 gcloud 命令行工具指南。
- 在 Cloud Shell 中,使用 gcloud 运行以下命令行,创建一个新的虚拟机实例:
gcloud compute instances create gcelab2 --machine-type n1-standard-2 --zone us-central1-f
预期输出:
Created [...gcelab2].
2. NAME ZONE MACHINE_TYPE ... STATUS
3. gcelab2 us-central1-f n1-standard-2 ... RUNNING
该新实例采用以下默认值:
- 最新的 Debian 10 (buster) 映像。
- n1-standard-2 机器类型。
在本实验中,您可以任选一种其他机器类型 n1-highmem-4 或 n1-highcpu4 在 Qwiklabs 之外处理项目时,您还可以指定自定义机器类型。
一个与此实例同名的 root 永久性磁盘;该磁盘会自动挂接到此实例。
- 如需查看所有默认值,请运行以下命令:
gcloud compute instances create --help
注意:如果您始终在一个区域/可用区内工作,且不想每次都附加 --zone 标志,则可以设置 gcloud 使用的默认区域和可用区。为此,请运行以下命令:gcloud config
set compute/zone ...
gcloud config set compute/region ...
- 要退出 help,请按 CTRL + C 键。
- 在 Cloud Console 的导航菜单 中,点击 Compute Engine > VM Instance(虚拟机实例)。 系统应该会显示您新建的 2 个实例。
- 您也可以通过 gcloud 使用 SSH 连接至实例。请务必添加您的可用区;若您已在全局范围内设置了该选项,则可省去 --zone 标志:
gcloud compute ssh gcelab2 --zone us-central1-f
预期输出:
WARNING: The public SSH key file for gcloud does not exist.
8. WARNING: The private SSH key file for gcloud does not exist.
9. WARNING: You do not have an SSH key for gcloud.
10. WARNING: [/usr/bin/ssh-keygen] will be executed to generate a key.
11. This tool needs to create the directory
12. [/home/gcpstaging306_student/.ssh] before being able to generate SSH
13. Keys.
- 输入 Y 以继续。
Do you want to continue? (Y/n)
- 按 ENTER 进入密码部分,将密码留空。
Generating public/private rsa key pair. - Enter passphrase (empty for no passphrase)
- 建立连接后,退出远程 shell 即可断开与 SSH 的连接:
exit