本文档介绍了如何选择特定计算类,以运行在 Google Kubernetes Engine (GKE) Autopilot 集群中具有独特硬件要求的工作负载。在阅读本文档之前,请确保您熟悉 GKE Autopilot 中的计算类的概念。
Autopilot 计算类概览
Autopilot 提供的计算类旨在运行具有特定硬件要求的工作负载。这些计算类可用于机器学习和 AI 任务或运行实时高流量数据库等工作负载。
这些计算类是 Compute Engine 机器系列的子集,可提供默认的 Autopilot 通用计算类的灵活性。
例如,Scale-Out 类会关闭并发多线程,以使每个 vCPU 都是一个物理核心。
根据您的个人 Pod 需求,您可以配置常规 Autopilot Pod 或 Spot Pod,以请求由这些计算类支持的节点。您还可以在支持该架构的计算类中请求特定的 CPU 架构(例如 Arm)。
准备工作
在开始之前,请确保您已执行以下任务:
- 启用 Google Kubernetes Engine API。 启用 Google Kubernetes Engine API
- 如果您要使用 Google Cloud CLI 执行此任务,请安装并初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行
gcloud components update命令以获取最新版本。较早版本的 gcloud CLI 可能不支持运行本文档中的命令。
在 Autopilot Pod 中请求计算类
如需指示 Autopilot 将 Pod 放置在特定计算类上,请指定cloud.google.com/compute-class 标签(位于 nodeSelector)或节点亲和性规则,如以下示例所示:nodeSelector
apiVersion: apps/v1 kind: Deployment metadata: name: hello-app spec: replicas: 3 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: nodeSelector: cloud.google.com/compute-class: "COMPUTE_CLASS" containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: requests: cpu: "2000m" memory: "2Gi"
根据您的用例将 COMPUTE_CLASS 替换为计算类的名称,例如 Scale-Out。如果您选择 Performance,则可以酌情在节点选择器中选择 Compute Engine 机器系列。如果您未指定机器系列,GKE 会根据区域可用性使用 C4 机器系列。如需相关说明,请参阅以最佳性能运行 CPU 密集型工作负载。
nodeAffinity
apiVersion: apps/v1 kind: Deployment metadata: name: hello-app spec: replicas: 3 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: terminationGracePeriodSeconds: 25 containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: requests: cpu: "2000m" memory: "2Gi" ephemeral-storage: "1Gi" affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: cloud.google.com/compute-class operator: In values: - "COMPUTE_CLASS"
根据您的用例将 COMPUTE_CLASS 替换为计算类的名称,例如 Scale-Out。如果您选择 Performance,则可以酌情在节点选择器中选择 Compute Engine 机器系列。如果您未指定机器系列,GKE 会根据区域可用性使用 C4 机器系列。如需相关说明,请参阅以最佳性能运行 CPU 密集型工作负载。
您还可以为 Spot Pod 请求特定计算类。
指定资源请求
选择计算类时,请确保根据所选类的最小和最大资源请求为 Pod 指定资源请求。如果请求小于最小值,则 Autopilot 会自动扩容请求。但是,如果请求大于最大值,则 Autopilot 不会部署 Pod 并显示错误消息。
选择 CPU 架构
某些计算类支持多个 CPU 架构。例如,Scale-Out 类支持 Arm 和 x86 架构。如果您未请求特定架构,则 Autopilot 功能会预配具有指定计算类默认架构的节点。如果您的 Pod 需要使用其他架构,请随您的计算类请求在节点选择器或节点亲和性规则中请求该架构。您请求的计算类必须支持您指定的 CPU 架构。
如需了解相关说明,请参阅在 Arm 架构上部署 Autopilot Pod。