自 Milestone 101 起,Container-Optimized OS 會發布以 Arm 為基礎的 OS 映像檔。這些映像檔可用於在 Compute Engine 上建立 Tau T2A VM。如要進一步瞭解哪些類型的工作負載適合使用 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 為基礎和以 x86 為基礎的 Container-Optimized OS 映像檔有何差異。
核心
Container-Optimized OS Arm 架構映像檔的 Kernel 設定與 x86 架構映像檔不同。最明顯的差異在於,Arm 架構映像檔會使用 NVMe 介面進行儲存,而非 SCSI 介面,並使用 Google 虛擬 NIC (gVNIC) 進行網路連線,而非 Virtionet。Container Threat Detection 功能也不適用於以 Arm 為基礎的映像檔。
Cloud Logging 代理程式
Container-Optimized OS Arm 架構映像檔使用 fluent-bit 做為 Cloud Logging 代理程式,而 x86 架構映像檔則使用 fluentd。如果您只依賴 OS 映像檔內建的預設記錄設定,應該不會看到任何差異。不過,如果您有自訂的 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"]],["上次更新時間: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:"]]