Elige una plataforma de CPU mínima


En esta página se muestra cómo especificar una plataforma de CPU mínima para los nodos de los 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 concretas, como una frecuencia base alta o una función de gestión de energía optimizada.

Algunas cargas de trabajo avanzadas que requieren muchos recursos computacionales en los sectores de los gráficos, los juegos y la analítica pueden usar las funciones específicas disponibles a través de diferentes conjuntos de funciones de plataformas de CPU, como AVX-2 y AVX-512. Elegir una plataforma de CPU específica puede suponer un aumento considerable del tiempo de ejecución y del rendimiento. Si especificas una plataforma de CPU mínima, tus cargas de trabajo pueden obtener estas ventajas de una forma más predecible y puedes asegurarte de que tus nodos nunca utilicen 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 en función de cómo uses GKE:

Ámbito Descripción Configuración de clúster compatible
A 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 una posterior.
  • Standard: GKE solo programa pods en nodos con la plataforma especificada. Por ejemplo, si existe un pool de nodos Intel Ice Lake y los nuevos pods solicitan un mínimo de Intel Cascade Lake, GKE crea un nuevo pool de nodos con Intel Cascade Lake, aunque Intel Ice Lake sea una plataforma más avanzada.

Nivel de nodo y clúster Elige una plataforma de CPU mínima al crear un clúster o un grupo de nodos en modo Estándar. Este ajuste no admite el aprovisionamiento automático de nodos. Para ver las instrucciones, ve a la sección Elegir una plataforma de CPU mínima a nivel de grupo de nodos. Nuevo clúster o grupo de nodos estándar

Precios

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

Antes de empezar

Antes de empezar, asegúrate de que has realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si quieres usar Google Cloud CLI para esta tarea, instálala y, a continuación, inicialízala. Si ya has instalado la gcloud CLI, obtén la versión más reciente ejecutando gcloud components update.

Comprobar la disponibilidad de la plataforma de CPU

Las plataformas de CPU disponibles varían en función de la zona de cálculo en la que se ejecuten tus nodos. Debes comprobar qué plataformas de CPU están disponibles en una zona, aunque uses clústeres de Autopilot o clústeres estándar regionales.

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

gcloud compute zones describe COMPUTE_ZONE

Sustituye 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 de esa región.

El resultado debería ser similar al siguiente:

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, sustituye los espacios por guiones bajos en el nombre de la plataforma. Por ejemplo, AMD_Milan.

Elegir una plataforma de CPU mínima a nivel de carga de trabajo

Si usas clústeres de Autopilot de GKE o clústeres estándar de GKE con aprovisionamiento automático de nodos, puedes elegir una plataforma de CPU mínima en la especificación de tu pod. Cuando despliegues la carga de trabajo, GKE programará esos pods solo en los nodos que tengan la plataforma especificada o una más reciente. Te recomendamos este método.

Autopilot

En Autopilot, solicita una plataforma de CPU mínima y una clase de computación. La clase de computación debe admitir la plataforma de CPU. Autopilot permite seleccionar una plataforma de CPU mínima para la clase de computación Balanced. Para ver una lista de las plataformas de CPU disponibles en cada clase de computación, consulta Cuándo usar clases de computación específicas.

Guarda el siguiente archivo de 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

Haz los cambios siguientes:

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

Estándar

En los clústeres estándar con el 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 admitir la plataforma de la CPU. Para ver una lista de las plataformas compatibles con cada familia de máquinas, consulta Plataformas de CPU de Compute Engine.

Guarda el siguiente archivo de 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

Haz los cambios siguientes:

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

Despliega la carga de trabajo:

kubectl apply -f min-cpu.yaml

Los nodos conservan 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.

Elegir una plataforma de CPU mínima a nivel de grupo de nodos

En los clústeres estándar de GKE sin aprovisionamiento automático de nodos, puedes especificar una plataforma de CPU mínima al crear un clúster o un grupo de nodos. Solo debes usar este método si no puedes usar el ajuste a nivel de carga de trabajo. Este ajuste no afecta al aprovisionamiento automático de nodos.

gcloud

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

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --min-cpu-platform PLATFORM

Haz los cambios siguientes:

  • POOL_NAME: el nombre del nuevo grupo de nodos.
  • CLUSTER_NAME: el nombre de tu clúster.
  • CONTROL_PLANE_LOCATION: la ubicación de Compute Engine del plano de control de tu clúster. Proporciona una región para los clústeres regionales o una zona para los clústeres zonales.
  • PLATFORM: la plataforma de CPU que quieras usar en el grupo de nodos, como "Intel Broadwell".

Consola

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

    Ir a Google Kubernetes Engine

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

  3. Haz clic en Añadir grupo de nodos.

  4. Configura el grupo de nodos según sea necesario.

  5. En el panel de navegación, haga clic en Nodos.

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

  7. En la lista desplegable Serie, selecciona un tipo de máquina.

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

  9. Selecciona Núcleos y Memoria según sea necesario.

  10. Haz clic en Plataforma de CPU y GPU.

  11. En la lista desplegable CPU Platform (Plataforma de CPU), selecciona la plataforma mínima.

  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 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'
      ...
    }
    ...
  }
}

Haz los cambios siguientes:

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

Si especificas la plataforma al crear un clúster, el ajuste de plataforma de CPU mínima se aplica al grupo de nodos predeterminado del nuevo clúster.

Alternativas

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

Alternativas

Marca de 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 según la zona.
  • El tipo de máquina E2 no admite plataformas de CPU mínimas. Debes seleccionar otro tipo de máquina.
  • Los clústeres Autopilot solo admiten la selección de plataforma para la clase de computación Balanced, no para las clases de computación predeterminadas ni Scale-Out.
  • Si tu carga de trabajo de Autopilot solicita más de 80 vCPUs, la plataforma de CPU mínima debe ser Intel Ice Lake o una versión posterior. Si especificas una plataforma menos avanzada, es posible que tu Pod permanezca en el estado Pending indefinidamente.

Se aplica la siguiente limitación al ajuste de plataforma de CPU mínima del clúster o del grupo de nodos:

Si seleccionas una plataforma de CPU mínima que sea menos avanzada que la plataforma de CPU predeterminada de la zona o si la plataforma seleccionada ya no está disponible, GKE comprobará si hay una plataforma más reciente con el mismo coste. Si existe una plataforma más reciente con el mismo coste, GKE crea los nodos con la plataforma más reciente. Si no existe una plataforma más reciente al mismo coste, se produce un error al crear el clúster o el grupo de nodos.

Siguientes pasos