从里程碑 101 开始,Container-Optimized OS 会发布基于 ARM 的操作系统映像。这些映像可用于在 Compute Engine 上创建 Tau T2A 虚拟机。如需详细了解哪种工作负载适合与 Tau T2A 搭配使用,请参阅工作负载建议。如需了解如何在 Google Google Kubernetes Engine (GKE) 上运行 Arm 工作负载,请参阅 GKE 上的 Arm 工作负载。
查看基于 Arm 的映像
基于 ARM 的 Container-Optimized OS 映像托管在 cos-cloud
项目下,并带有 cos-arm64
前缀。您还可以通过运行以下命令,在命令行中查看当前可用的所有版本:
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 映像共享相同的源代码,但 build 和编译配置不同。这意味着基于 ARM 的 Container-Optimized OS 映像在功能上可能与基于 x86 的 Container-Optimized OS 映像在功能上有所不同。
以下部分介绍了基于 ARM 的容器和基于 x86 的 Container-Optimized OS 映像之间的区别。
内核
基于 Arm 的 Container-Optimized OS 映像具有单独的内核配置,与基于 x86 的映像不同。最明显的区别是,基于 Arm 的映像使用 NVMe 接口进行存储,而不是 SCSI 接口;使用 Google 虚拟 NIC (gVNIC) 进行网络而不是 Virtionet。Container Threat Detection 功能也不适用于基于 ARM 的映像。
Cloud Logging 代理
Container-Optimized OS 基于 Arm 的映像使用 流位作为 Cloud Logging 代理,基于 x86 的映像使用 Flud。如果您只依赖于操作系统映像中内置的默认日志记录配置,则应该不会看到任何区别。但是,如果您有自定义流畅配置,则在将工作负载迁移到基于 ARM 的 Container-Optimized OS 映像时,可能会遇到中断。如需了解详情,请参阅 Cloud Logging 代理。
自动更新
基于容器的 ARM 映像不支持自动更新。
GPU 加速器
基于容器优化型操作系统的映像不支持使用图形处理单元 (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 | 否 |