gcloud compute
现已正式发布,Compute Engine 建议所有用户由使用 gcutil
改为使用 gcloud compute
工具。gcloud compute
是一种统一命令行工具,与 gcutil
相比,该工具的功能进行了多项改进,包括:
- Tab 键填充
- 就地升级
- 各种手册页面式帮助信息
- 可选择不同的输出格式
为帮助用户从使用 gcutil
改为使用 gcloud compute
,本指南简要介绍了这两种工具之间的主要更改。如需详细了解 gcloud compute
工具,请参阅 gcloud compute
文档。
全新的 gcloud 命令
除了少数几个例外,所有现有的 gcutil
命令在 gcloud compute
工具中都有等效的命令。您可以访问参考页面或运行 gcloud compute --help
以获得完整的 gcloud
命令列表。下表简要概述了常用的 gcutil
命令的变化。
gcutil 命令 | gcloud compute 命令 |
---|---|
gcutil addinstance INSTANCE |
gcloud compute instances create INSTANCE |
备注创建一个实例。
请参阅创建和启动实例。 |
gcutil 命令 | gcloud compute 命令 |
---|---|
gcutil deleteinstance INSTANCE |
gcloud compute instances delete INSTANCE \ [--keep-disks {boot,all,none}] |
备注删除实例。请参阅删除实例。 |
gcutil 命令 | gcloud compute 命令 |
---|---|
gcutil ... --cache_flag_values |
gcloud configs set project PROJECT gcloud configs set compute/zone ZONE gcloud configs set compute/region REGION |
备注设置项目、地区和区域的默认值。请参阅设置默认地区和区域。 |
gcutil 命令 | gcloud compute 命令 |
---|---|
gcutil push/pull |
gcloud compute scp |
备注在本地计算机和虚拟机之间复制文件。请参阅使用 Google Cloud CLI 传输文件。 |
gcutil 命令 | gcloud compute 命令 |
---|---|
gcutil deleteRESOURCE |
gcloud compute RESOURCES delete |
备注删除资源,例如: gcloud compute instances delete example-instance |
gcutil 命令 | gcloud compute 命令 |
---|---|
gcutil getRESOURCES |
gcloud compute RESOURCES describe |
备注描述单个资源,例如: gcloud compute instances describe example-instance |
gcutil 命令 | gcloud compute 命令 |
---|---|
gcutil listRESOURCES |
gcloud compute RESOURCES list |
备注列出该类型的所有资源。例如,要列出实例,可使用以下命令: gcloud compute instances list |
gcutil 命令 | gcloud compute 命令 |
---|---|
gcutil setmetadata |
gcloud compute instances add-metadata gcloud compute instances remove-metadata gcloud compute project-info add-metadata gcloud compute project-info remove-metadata |
备注乐观锁定现在由该工具完成,因此无需手动指定指纹。请参阅设置自定义实例元数据 |
gcutil 命令 | gcloud compute 命令 |
---|---|
gcutil … --dump_request_response |
尚未提供。 |
gcutil 命令 | gcloud compute 命令 |
---|---|
gcutil … --log_level=DEBUG |
gcloud … --verbosity debug |
备注此外,日志存储在每个命令对应的文件(位于 ~/.config/gcloud/logs)中。 |
gcutil 命令 | gcloud compute 命令 |
---|---|
gcutil ssh INSTANCE --ssh_user |
gcloud compute ssh USER@INSTANCE |
备注请参阅连接实例。 |
gcutil 命令 | gcloud compute 命令 |
---|---|
gcutil … \ --image=projects/project-id/global/images/image |
gcloud compute … --image image-name \ --image-project image-project |
备注请参阅从映像启动实例。 |
gcutil 命令 | gcloud compute 命令 |
---|---|
gcutil deleteinstances --[no]delete_pd gcutil deleteinstances --[no]delete_boot_pd |
gcloud compute instances delete … \ --delete-disks {all,none,boot} gcloud compute instances delete … \ --keep-disks {all,none,boot} |
备注如果一个磁盘被标记为自动删除,该磁盘会被自动删除,除非您使用 |
默认实例设置
现在,当您通过 gcloud compute
创建实例时,可使用系统为虚拟机的映像和机器类型提供的几个默认值。您可以省略 --image
和 --machine-type
标志以选择使用这些默认值,或者提供合适的标志来替换这些设置。默认虚拟机设置如下:
- 默认映像:最新的 debian-10 映像
- 默认机器类型:n1-standard-1
例如,您只需运行以下命令:
gcloud compute instances create example-instance --zone us-central1-a
gcloud compute
将使用上述映像和机器类型创建实例。
输出格式
默认输出格式发生了变化,具体取决于您运行的命令。例如,如果您运行 describe
命令以获取有关单个资源的信息,则响应输出将采用 YAML 格式。您可以使用 --format
标志以不同的输出格式(如 JSON 或文本)返回响应:
gcloud compute instances list --format {json,yaml,text}
更新元数据现在是指执行添加操作
设置或更新元数据时,您不再需要提供指纹。 默认情况下,所有元数据更改都被视为添加操作。您可以添加单个元数据条目或更新条目,而无需对所有元数据执行批量更新。只有传入的元数据键相应的条目会发生变化。
gcloud compute instances add-metadata example-instance \
--metadata cookies=chocolate
指定映像项目
以前,要指定一个确切的映像,您需要提供一个包含项目名称的部分映像 URI,如下所示:
gcutil addinstance example-instance \
--image=projects/debian-cloud/global/images/debian-9
在 gcloud compute
中,您现在必须使用新的 --image-project
标志来指定映像项目:
gcloud compute instances create example-instance \
--image debian-9-stretch-vYYYMMDD
--image-project debian-cloud
您也可以提供完整的 URI:
gcloud compute instances create example-instance \
--image https://compute.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-9-stretch-vYYYMMDD