本文档介绍在 Compute Engine 上使用映像系列时的最佳做法。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- 设置与生产环境分开的测试环境。
- 在测试环境中,完成以下步骤:
- 从来源映像系列创建自定义映像系列。
- 通过工作负载验证自定义映像系列中新映像的稳定性。
- 验证后,将此自定义映像系列移至生产环境。
在测试项目中,从来源映像系列创建映像。这个新映像来源系列还必须有自己的自定义映像系列可在测试环境中引用。如需使用自定义映像系列创建映像,请运行以下命令:
gcloud compute images create test-image-name \ --source-image-project source-project \ --source-image-family source-image-family \ --project test-project \ --family test-image-family
替换以下内容:
test-image-name
:测试映像的名称。source-project
:来源映像系列所属的项目。source-image-family
:来源映像系列的名称。test-project
:要向其中添加映像系列的测试项目的名称。test-image-family
:测试映像系列的名称。
使用自定义映像系列
test-image-family
创建虚拟机以测试工作负载。如需创建虚拟机,请运行以下命令:gcloud compute instances create test-instance-name \ --image-family your-test-image-family \ --project test-project
替换以下内容:
test-instance-name
:测试实例的名称。test-image-family
:测试映像系列的名称。test-project
:测试项目的名称。
验证此映像适用于您的工作负载后,将该映像复制到生产环境。
gcloud compute images create prod-image-name \ --source-image-family test-image-family \ --source-image-project test-project \ --project prod-project \ --family prod-image-family
替换以下内容:
prod-image-name
:生产映像的名称。test-image-family
:测试映像系列的名称。test-project
:测试映像系列所属的项目。prod-project
:生产环境中的项目的名称。prod-image-family
:要在生产环境中使用的映像系列的名称。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
公共映像系列
Compute Engine 提供了映像系列,以帮助您确保自动化系统可以引用最新映像。 作为管理员,您可以将一组映像划分为一个映像系列。随后,映像的用户只需跟踪映像系列名称,而无需跟踪精确的映像名称。由于映像名称必须唯一,因此映像构建流水线通常会创建编码有应用名称、日期和版本等信息的映像名称,例如
my-application-v3-20210101
。在自动化工具中,您可以引用映像系列名称,而无需定期更新映像名称。使用映像系列可确保您始终能够访问系列中的最新映像,例如my-application
。公共映像分组为映像系列。公开映像系列始终指向每个地区中可供使用的最新版本的映像。当新映像在全球范围内发布时,其在映像系列中的初始可用性取决于地区,这刻提高 Google 映像更新期间工作流的容错能力。
在映像发布期间,映像系列中最新版本的映像可能因不同地区而异。例如,
debian-cloud
项目中的debian-12
映像系列始终指向最新的 Debian 12 映像,但可用区us-central1-a
和southamerica-east1-b
中的最新 Debian 12 映像可能不同。当您使用 Google Cloud CLI 从映像系列创建虚拟机时,Compute Engine 会根据您的请求使用您的虚拟机可用区中提供的最新映像。当您使用 Google Cloud 控制台创建虚拟机时,Compute Engine 仅显示所选可用区中提供的公共映像。如果要使用全球可用的最新映像来创建虚拟机,请使用 gcloud CLI
instances create
命令并指定--image-family-scope=global
。查看可用的最新映像版本
您可以查看映像系列中最新的全球可用映像,或者查看特定可用区提供的最新映像。
全球
如需查看映像系列中全球可供使用的最新映像,请使用以下方法之一:
gcloud
使用
gcloud compute images describe-from-family
命令:gcloud compute images describe-from-family IMAGE_FAMILY_NAME \ --project=IMAGE_PROJECT
请替换以下内容:
REST
向
images.getFromFamily
方法发出GET
请求:GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME
请替换以下内容:
每个区域
如需查看特定地区的映像系列中可供使用的最新映像,请使用以下方法之一:
gcloud
使用带有
--zone
标志的gcloud compute images describe-from-family
命令:gcloud compute images describe-from-family IMAGE_FAMILY_NAME \ --project=IMAGE_PROJECT \ --zone=ZONE
替换以下内容:
REST
向
imageFamilyViews
方法发出GET
请求:GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/zones/ZONE/imageFamilyViews/IMAGE_FAMILY_NAME
请替换以下内容:
自定义映像系列
您可以为自定义映像创建自定义映像系列。该映像系列指向您用于创建映像系列的最新映像。 如需将映像系列回滚到先前的映像版本,您可以弃用该系列中的最新映像(前提是之前的映像未被弃用)。如需了解详情,请参阅在映像系列中设置映像版本。
如需使用映像系列创建映像,或在映像系列不存在的情况下创建映像系列,您必须向映像创建步骤添加一个额外的
--family
标志,例如:gcloud compute images create my-application-v3-20210101 \ --source-disk my-application-disk-1 \ --source-disk-zone us-central1-f \ --family my-application
运行此命令后,基于映像
my-application
运行实例的任何调用都将指向新创建的映像my-application-v3-20210101
。为映像系列选择名称时,请查看命名惯例。
如何使用映像系列
虽然映像系列允许您引用最新映像,但最新映像可能会与您的应用不兼容,这可能会导致未经验证的生产环境中出现问题。如果您想充分利用映像系列的优势,同时降低风险,我们建议您先测试从映像系列引用的最新映像,然后再在生产环境中使用该映像。
总的来说,您可以考虑采用以下方法:
例如,该过程可能类似于以下过程。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-08。
-