从里程碑 101 开始,Container-Optimized OS 发布基于 Arm 的操作系统映像。这些映像可用于在 Compute Engine 上创建 Tau T2A 虚拟机。如需详细了解哪些类型的工作负载可与 Tau T2A 搭配使用,请参阅工作负载建议。如需了解如何在 Google Kubernetes Engine (GKE) 上运行 Arm 工作负载,请参阅 GKE 上的 Arm 工作负载。
查看基于 Arm 的映像
基于 Arm 的 Container-Optimized OS 映像托管在前缀为 cos-arm64
的 cos-cloud
项目下。您还可以运行以下命令,在命令行中查看当前可用的所有版本:
gcloud compute images list --project cos-cloud --no-standard-images --filter="name~'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 里程碑生命周期。基于 Arm 的 Container-Optimized OS 映像还有类似的映像系列 cos-arm64-dev
、cos-arm64-beta
、cos-arm64-stable
和 cos-arm64-[MILESTONE]-lts
。
Arm 和 x86 映像之间的差异
基于 Arm 和基于 x86 的 Container-Optimized OS 映像共用相同的源代码,但构建和编译配置不同。这意味着,基于 Arm 的 Container-Optimized OS 映像的功能可能与基于 x86 的 Container-Optimized OS 映像不同,即使它们的版本相同也是如此。
以下部分介绍了基于 Arm 和基于 x86 的 Container-Optimized OS 映像之间的差异。
内核
基于 Arm 的 Container-Optimized OS 映像具有与基于 x86 的映像不同的单独内核配置。最显著的区别在于,基于 Arm 的映像使用 NVMe 接口进行存储(而非 SCSI 接口),并使用 Google 虚拟 NIC (gVNIC) 进行网络连接(而非 Virtio-net)。Container Threat Detection 功能也不适用于基于 Arm 的映像。
Cloud Logging 代理
Container-Optimized OS 基于 Arm 的映像使用 fluent-bit 作为 Cloud Logging 代理,基于 x86 的映像使用 fluentd。如果您仅依赖于 OS 映像中内置的默认日志记录配置,则不会发现任何差异。不过,如果您有自定义 fluentd 配置,则在将工作负载迁移到基于 Arm 的 Container-Optimized OS 映像时,可能会遇到中断问题。如需了解详情,请参阅 Cloud Logging 代理。
自动更新
Container-Optimized OS 基于 Arm 的映像不支持自动更新。
GPU 加速器
Container-Optimized OS 基于 ARM 的映像不支持使用图形处理单元 (GPU) 硬件加速器。
使用 create-with-container
命令创建实例
基于 Arm 的 Container-Optimized OS 映像不支持使用 create-with-container
命令创建虚拟机实例。如果您希望在创建实例时启动容器,可以使用 cloud-init
配置基于 Arm 的实例。
容器映像
Container-Optimized OS 包含在运行时下载容器的工具。下表介绍了哪些容器与基于 Arm 的映像兼容:
容器映像 | 与基于 Arm 的映像兼容 |
---|---|
gcr.io/cos-cloud/toolbox | 是 |
gcr.io/cos-cloud/cos-gpu-installer | 否 |
gcr.io/stackdriver-agents/stackdriver-logging-agent | 否 |
gcr.io/gce-containers/konlet | 否 |