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:
|
|
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, comoAMD_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 serBalanced
.
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, comoAMD_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, comon2d
.
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
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.
Haz clic en add_box Agregar grupo de nodos.
Configura el grupo de nodos como desees.
Desde el panel de navegación, haz clic en Nodos.
En Configuración de la máquina,
En la lista desplegable Serie, selecciona una familia de tipos de máquina.
En la lista desplegable Tipo de máquina, selecciona Personalizado.
Selecciona Núcleos y Memorias como desees.
Haz clic en expand_more Plataforma de CPU y GPU.
En la lista desplegable Plataforma de CPU, selecciona la plataforma deseada.
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 proyectoCOMPUTE_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 |
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 niScale-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?
- Consulta una lista de las plataformas de CPU disponibles.
- Más información sobre las regiones y zonas
- Más información sobre nodos.