Elige una plataforma de CPU mínima


En esta página, se muestra cómo especificar una plataforma de CPU mínima para nodos en clústeres de Google Kubernetes Engine (GKE).

¿Por qué elegir una plataforma de CPU mínima?

Especificar una plataforma de CPU mínima es útil si necesitas capacidades y especificaciones de CPU particulares, como una frecuencia de base alta o una funcionalidad de administración de energía optimizada.

Ciertas cargas de trabajo avanzadas de uso intensivo de computación en las industrias de gráficos, videojuegos y análisis pueden hacer uso de las características específicas disponibles a través de diferentes conjuntos de características de la plataforma de CPU, como AVX-2 y AVX-512. La elección de una plataforma de CPU específica puede producir mejoras sustanciales en el tiempo de ejecución y el rendimiento. Si especificas una plataforma de CPU mínima, tus cargas de trabajo pueden obtener estos beneficios de una manera más predecible y puedes asegurarte de que tus nodos nunca usen una plataforma de CPU inadecuada para sus cargas de trabajo.

Cómo elegir una plataforma

En la siguiente tabla, se muestra cómo elegir una plataforma de CPU mínima según la forma en que usas GKE:

Alcance Descripción Configuración del clúster compatible
Nivel de carga de trabajo (recomendado)

Elige una plataforma mínima en la especificación de tu Pod. GKE programa esos Pods de la siguiente manera:

  • Autopilot: GKE programa los Pods en nodos con la plataforma especificada o posterior.
  • Standard: GKE solo programa Pods en nodos con la plataforma especificada. Por ejemplo, si existe un grupo de nodos de Intel Ice Lake y los Pods nuevos solicitan un mínimo de Intel Cascade Lake, GKE crea un grupo de nodos nuevo con Intel Cascade Lake, aunque Intel Ice Lake es una plataforma más avanzada.

Nivel de nodo y clúster Elige una plataforma de CPU mínima cuando crees un clúster nuevo o grupo de nodos en modo Standard. Esta configuración no es compatible con el aprovisionamiento automático de nodos. Para obtener instrucciones, ve a Elige una plataforma de CPU mínima a nivel del grupo de nodos. Nuevo clúster o grupo de nodos de Standard

Precios

Puedes elegir una plataforma de CPU mínima sin costo adicional.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta gcloud components update para obtener la versión más reciente.

Verifica la disponibilidad de la plataforma de CPU

Las plataformas de CPU disponibles varían según la zona de procesamiento en la que se ejecutan tus nodos. Debes verificar qué plataformas de CPU están disponibles en una zona, incluso si usas clústeres de Autopilot o de Standard regionales.

Para verificar las plataformas disponibles en una zona específica, ejecuta el siguiente comando:

gcloud compute zones describe COMPUTE_ZONE

Reemplaza COMPUTE_ZONE por el nombre de una zona, como us-central1-a. Si usas un tipo de clúster regional, especifica el nombre de una zona en esa región.

El resultado es similar a este:

availableCpuPlatforms:
- Intel Ice Lake
- Intel Cascade Lake
- Intel Skylake
- Intel Broadwell
- Intel Haswell
- Intel Ivy Bridge
- Intel Sandy Bridge
- AMD Milan
- AMD Rome
- Ampere Altra
- Intel Sapphire Rapids

Cuando uses estos valores para solicitar una plataforma de CPU mínima, reemplaza los espacios con guiones bajos en el nombre de la plataforma. Por ejemplo, AMD_Milan.

Selecciona una plataforma de CPU mínima a nivel de la carga de trabajo

Si usas clústeres de Autopilot o Standard de GKE con aprovisionamiento automático de nodos, puedes elegir una plataforma de CPU mínima en la especificación de tu Pod. Cuando implementas la carga de trabajo, GKE programa esos Pods solo en los nodos que tienen la plataforma especificada o una más reciente. Recomendamos usar este método.

Autopilot

En Autopilot, solicita una plataforma de CPU mínima y una clase de procesamiento. La clase de procesamiento debe ser compatible con la plataforma de CPU. Autopilot admite la selección de una plataforma de CPU mínima para la clase de procesamiento Balanced. Para obtener una lista de las plataformas de CPU disponibles en cada clase de procesamiento, consulta Cuándo usar clases de procesamiento específicas.

Guarda el siguiente manifiesto como min-cpu.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: min-cpu-platform
  labels:
    app: min-cpu
spec:
  replicas: 3
  selector:
    matchLabels:
      app: min-cpu
  template:
    metadata:
      labels:
        app: min-cpu
    spec:
      nodeSelector:
        cloud.google.com/compute-class: "COMPUTE_CLASS"
        supported-cpu-platform.cloud.google.com/PLATFORM: "true"
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 250m

Reemplaza lo siguiente:

  • PLATFORM: el nombre de la plataforma de CPU, como AMD_Milan. El nombre de la plataforma distingue mayúsculas de minúsculas y debe estar delimitado por guiones bajos.
  • COMPUTE_CLASS: el nombre de la clase de procesamiento, que debe ser Balanced.

Estándar

En los clústeres de Standard con aprovisionamiento automático de nodos habilitado, solicita una plataforma de CPU junto con una familia de máquinas de Compute Engine. La familia de máquinas debe ser compatible con la plataforma de CPU. Para obtener una lista de las plataformas compatibles con cada familia de máquinas, consulta Plataformas de CPU de Compute Engine.

Guarda el siguiente manifiesto como min-cpu.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: min-cpu-platform
  labels:
    app: min-cpu
spec:
  replicas: 3
  selector:
    matchLabels:
      app: min-cpu
  template:
    metadata:
      labels:
        app: min-cpu
    spec:
      nodeSelector:
        cloud.google.com/machine-family: MACHINE_FAMILY
        cloud.google.com/requested-min-cpu-platform: PLATFORM
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 250m

Reemplaza lo siguiente:

  • PLATFORM: el nombre de la plataforma de CPU, como AMD_Milan. El nombre de la plataforma distingue mayúsculas de minúsculas y debe estar delimitado por guiones bajos.
  • MACHINE_FAMILY: el nombre de la familia de máquinas, como n2d.

Implementa la carga de trabajo:

kubectl apply -f min-cpu.yaml

Los nodos retienen la misma plataforma a lo largo de su ciclo de vida, a menos que se retire la plataforma de CPU especificada, en cuyo caso los nodos se ejecutan en una plataforma más nueva.

Elige una plataforma de CPU mínima a nivel del grupo de nodos

Para los clústeres de GKE Standard sin aprovisionamiento automático de nodos, puedes especificar una plataforma de CPU mínima cuando creas un clúster nuevo o un grupo de nodos. Solo debes usar este enfoque si no puedes usar la configuración a nivel de la carga de trabajo. Esta configuración no afecta el aprovisionamiento automático de nodos.

gcloud

Para crear un grupo de nodos nuevo con una plataforma de CPU mínima mediante la CLI de gcloud, configura la marca --min-cpu-platform y especifica el nombre de la plataforma de CPU:

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --region COMPUTE_REGION \
    --min-cpu-platform PLATFORM

Reemplaza lo siguiente:

  • POOL_NAME: es el nombre de tu grupo de nodos nuevo.
  • CLUSTER_NAME: es el nombre de tu clúster.
  • COMPUTE_REGION: Es la región del clúster.
  • PLATFORM: es la plataforma de CPU que deseas ejecutar en el grupo de nodos, como "Intel Broadwell".

Console

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.

    Ir a Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.

  3. Haz clic en Agregar grupo de nodos.

  4. Configura el grupo de nodos como desees.

  5. Desde el panel de navegación, haz clic en Nodos.

  6. En Configuración de la máquina,

  7. En la lista desplegable Serie, selecciona una familia de tipos de máquina.

  8. En la lista desplegable Tipo de máquina, selecciona Personalizado.

  9. Selecciona Núcleos y Memorias como desees.

  10. Haz clic en Plataforma de CPU y GPU.

  11. En la lista desplegable Plataforma de CPU, selecciona la plataforma deseada.

  12. Haz clic en Crear.

API

Incluye la propiedad minCpuPlatform como parte del campo nodeConfig en el cuerpo de la solicitud. El valor de minCpuPlatform debe ser el nombre de la plataforma, como Intel Haswell, Intel Broadwell y Intel Sandy Bridge.

Por ejemplo, la siguiente solicitud crea un grupo de nodos nuevo que ejecuta la plataforma Intel Broadwell:

POST https://container.googleapis.com/v1/projects/PROJECT_ID/regions/COMPUTE_REGION/clusters/CLUSTER_NAME/nodePools

{
  'nodePool': {
    'name': 'POOL_NAME',
    'nodeConfig': {
      'minCpuPlatform': 'Intel Broadwell'
      ...
    }
    ...
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: el ID de tu proyecto
  • COMPUTE_REGION: Es la región del clúster.
  • CLUSTER_NAME: es el nombre de tu clúster.
  • POOL_NAME: el nombre de tu grupo de nodos nuevo.

Si especificas la plataforma cuando creas un clúster, la configuración mínima de la plataforma de CPU se aplica al grupo de nodos predeterminado en el clúster nuevo.

Alternativas

GKE también te permite seleccionar plataformas de CPU mínimas mediante los siguientes métodos:

Alternativas

Marca a nivel de clúster

Marca --autoprovisioning-min-cpu-platform

Limitaciones

Las siguientes limitaciones se aplican a todos los métodos para seleccionar una plataforma de CPU mínima:

  • Se aplican todas las limitaciones de las plataformas de CPU mínimas de Compute Engine.
  • La disponibilidad de plataformas de CPU específicas varía por zona.
  • El tipo de máquina E2 no admite plataformas de CPU mínimas. Debes seleccionar un tipo de máquina diferente.
  • Los clústeres de Autopilot solo admiten la selección de plataformas para la clase de procesamiento Balanced, no las clases de procesamiento predeterminadas ni Scale-Out.
  • Si tu carga de trabajo de Autopilot solicita más de 80 CPU virtuales, la plataforma de CPU mínima debe ser Intel Ice Lake o una posterior. Si especificas una plataforma menos avanzada, el Pod puede permanecer en el estado Pending de forma indefinida.

La siguiente limitación se aplica a la configuración de plataforma de CPU mínima del clúster o grupo de nodos:

Si seleccionas una plataforma de CPU mínima que es menos avanzada que la plataforma de CPU predeterminada en la zona o si la plataforma seleccionada ya no está disponible, GKE verifica si hay una plataforma más nueva al mismo costo. Si existe una plataforma más nueva al mismo costo, GKE crea los nodos con la plataforma más nueva. Si una plataforma más nueva no existe al mismo costo, la creación del clúster o del grupo de nodos falla.

¿Qué sigue?