从里程碑 101 开始,Container-Optimized OS 发布基于 Arm 的操作系统映像。这些映像可用于在 Compute Engine 上创建 Tau T2A 虚拟机。如需详细了解哪些类型的工作负载可与 Tau T2A 搭配使用,请参阅工作负载建议。
如需了解如何在 Google Kubernetes Engine (GKE) 上运行 Arm 工作负载,请参阅 GKE 上的 Arm 工作负载。
查看基于 ARM 的映像
基于 Arm 的 Container-Optimized OS 映像托管在 cos-cloud 项目下,前缀为 cos-arm64。您还可以运行以下命令,在命令行中查看所有可用版本:
NAME PROJECT FAMILY DEPRECATED STATUS
cos-arm64-101-17162-40-5 cos-cloud cos-arm64-101-lts READY
cos-arm64-beta-101-17162-40-5 cos-cloud cos-arm64-beta READY
cos-arm64-dev-105-17228-0-0 cos-cloud cos-arm64-dev READY
cos-arm64-stable-101-17162-40-5 cos-cloud cos-arm64-stable READY
基于 Arm 的 Container-Optimized OS 映像与基于 x86 的映像采用相同的版本控制方案和 LTS 里程碑生命周期。此外,还有类似的映像系列 cos-arm64-dev、cos-arm64-beta、cos-arm64-stable 和 cos-arm64-[MILESTONE]-lts,用于基于 Arm 的 Container-Optimized OS 映像。
Arm 映像与 x86 映像之间的区别
基于 Arm 和基于 x86 的 Container-Optimized OS 映像共享相同的源代码,但构建和编译配置不同。这意味着,即使基于 Arm 的 Container-Optimized OS 映像与基于 x86 的 Container-Optimized OS 映像具有相同的版本,它们在功能上可能也不完全相同。
以下部分介绍了基于 Arm 的 Container-Optimized OS 映像与基于 x86 的 Container-Optimized OS 映像之间的区别。
内核
基于 Arm 的 Container-Optimized OS 映像具有与基于 x86 的映像不同的单独内核配置。最明显的区别在于,基于 Arm 的映像使用 NVMe 接口进行存储,而不是 SCSI 接口,并使用 Google 虚拟 NIC (gVNIC) 进行联网,而不是 Virtionet。Container Threat Detection 功能也不适用于基于 Arm 的映像。
Cloud Logging 代理
基于 Arm 的 Container-Optimized OS 映像使用 fluent-bit 作为 Cloud Logging 代理,而基于 x86 的映像使用 fluentd。如果您仅依赖于操作系统映像中内置的默认日志记录配置,则不会看到任何差异。不过,如果您有自定义 fluentd 配置,在将工作负载迁移到基于 Arm 的 Container-Optimized OS 映像时,可能会遇到中断问题。如需了解详情,请参阅 Cloud Logging 代理。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-09-04。"],[[["\u003cp\u003eContainer-Optimized OS now offers Arm-based images, identified by the \u003ccode\u003ecos-arm64\u003c/code\u003e prefix, which can be utilized to create Tau T2A VMs on Compute Engine and run Arm workloads on GKE.\u003c/p\u003e\n"],["\u003cp\u003eArm-based images share the same versioning scheme and LTS milestone lifecycle as x86-based images, including similar image families like \u003ccode\u003ecos-arm64-dev\u003c/code\u003e, \u003ccode\u003ecos-arm64-beta\u003c/code\u003e, and \u003ccode\u003ecos-arm64-stable\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eWhile Arm-based and x86-based images have the same source code, there are key differences in kernel configurations, such as Arm using NVMe for storage and gVNIC for networking, as well as using fluent-bit for cloud logging.\u003c/p\u003e\n"],["\u003cp\u003eArm-based Container-Optimized OS images do not support automatic updates, GPU accelerators, or the \u003ccode\u003ecreate-with-container\u003c/code\u003e command, requiring \u003ccode\u003ecloud-init\u003c/code\u003e for initial container configuration.\u003c/p\u003e\n"],["\u003cp\u003eCertain container images that work with x86-based versions will not work with the Arm-based Container-Optimized OS images, such as \u003ccode\u003ecos-gpu-installer\u003c/code\u003e, \u003ccode\u003estackdriver-logging-agent\u003c/code\u003e, and \u003ccode\u003ekonlet\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Using Arm-based Container-Optimized OS images\n\nStarting with [Milestone 101](/container-optimized-os/docs/release-notes/m101),\nContainer-Optimized OS publishes Arm-based OS images. The images can be used\nto create [Tau T2A VMs](/compute/docs/instances/arm-on-compute) on Compute\nEngine. To learn more about what types of workloads work well with Tau T2A, see\n[Workload Recommendations](/compute/docs/instances/arm-on-compute#workload_recommendations).\nTo learn how you can run Arm workloads on Google Kubernetes Engine (GKE), see\n[Arm workloads on GKE](/kubernetes-engine/docs/concepts/arm-on-gke).\n\nView Arm-based images\n---------------------\n\nArm-based Container-Optimized OS images are hosted under the `cos-cloud`\nproject with the prefix `cos-arm64`. You can also see all available\nreleases on command line by running the following command: \n\n gcloud compute images list --project cos-cloud --no-standard-images --filter=\"name~'cos-arm64-*'\"\n\nThe output is similar to the following: \n\n NAME PROJECT FAMILY DEPRECATED STATUS\n cos-arm64-101-17162-40-5 cos-cloud cos-arm64-101-lts READY\n cos-arm64-beta-101-17162-40-5 cos-cloud cos-arm64-beta READY\n cos-arm64-dev-105-17228-0-0 cos-cloud cos-arm64-dev READY\n cos-arm64-stable-101-17162-40-5 cos-cloud cos-arm64-stable READY\n\nArm-based Container-Optimized OS images share the same\n[versioning scheme](/container-optimized-os/docs/concepts/versioning) and [LTS\nmilestone lifecycle](/container-optimized-os/docs/concepts/versioning#lifecycle_of_an_lts_milestone)\nwith x86-based images. There are also similar image families `cos-arm64-dev`,\n`cos-arm64-beta`, `cos-arm64-stable` and `cos-arm64-[MILESTONE]-lts` for\nArm-based Container-Optimized OS images.\n\nDifferences between Arm and x86 images\n--------------------------------------\n\nThe Arm-based and x86-based Container-Optimized OS images share the same\n[source code](/container-optimized-os/docs/resources/sources#image_source),\nbut the build and compile configurations are different. This means that an\nArm-based Container-Optimized OS image might not be functionally identical\nwith a x86-based Container-Optimized OS image even if they have the same\nversion.\n\nThe following sections describe the differences between Arm-based\nand x86-based Container-Optimized OS images.\n\n### Kernel\n\nContainer-Optimized OS Arm-based images have a separate kernel configuration\nthat is different from x86-based images. The most noticeable difference is that\nArm-based images use NVMe interface for storage instead of SCSI interface, and\n[Google virtual NIC (gVNIC)](/compute/docs/networking/using-gvnic) for\nnetworking instead of Virtionet. The\n[Container Threat Detection](/security-command-center/docs/concepts-container-threat-detection-overview)\nfeature also doesn't work on Arm-based images.\n\n### Cloud Logging agent\n\nContainer-Optimized OS Arm-based images use\n[fluent-bit](https://github.com/fluent/fluent-bit) as\n[Cloud Logging agent](/container-optimized-os/docs/how-to/logging) and\nx86-based images use fluentd. You shouldn't see any difference if you only rely\non the default logging configuration built into the OS images. However, if you\nhave custom fluentd configurations, you might experience breakage when migrating\nworkloads to Arm-based Container-Optimized OS images. For more information,\nsee the [Cloud Logging agent](/container-optimized-os/docs/how-to/logging).\n\n### Automatic updates\n\n[Automatic updates](/container-optimized-os/docs/concepts/auto-update) are not\nsupported on Container-Optimized OS Arm-based images.\n\n### GPU accelerators\n\nUsing graphics processing unit (GPU) hardware accelerators is not supported on\nContainer-Optimized OS Arm-based images.\n\n### Create instances with the `create-with-container` command\n\nContainer-Optimized OS Arm-based images don't support creating VM instances\nwith the [`create-with-container`](/container-optimized-os/docs/how-to/create-configure-instance#simple)\ncommand. You can use\n[`cloud-init`](/container-optimized-os/docs/how-to/create-configure-instance#using_cloud-init_with_the_cloud_config_format)\nto configure Arm-based instances if you want to start containers when instances\nare created.\n\n### Container images\n\nContainer-Optimized OS includes tools that download\n[containers](/container-optimized-os/docs/resources/sources#container_source) at\nruntime. The following table describes which containers are compatible with\nArm-based images:"]]