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:
|
|
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, comoAMD_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 serBalanced
.
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, comoAMD_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, comon2d
.
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
Ve a la página Google Kubernetes Engine en la Google Cloud consola.
En la lista de clústeres, haga clic en el nombre del clúster que quiera modificar.
Haz clic en add_box Añadir grupo de nodos.
Configura el grupo de nodos según sea necesario.
En el panel de navegación, haga clic en Nodos.
En Configuración de la máquina,
En la lista desplegable Serie, selecciona un tipo de máquina.
En la lista desplegable Tipo de máquina, selecciona Personalizado.
Selecciona Núcleos y Memoria según sea necesario.
Haz clic en expand_more Plataforma de CPU y GPU.
En la lista desplegable CPU Platform (Plataforma de CPU), selecciona la plataforma mínima.
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 |
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 niScale-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
- Consulta una lista de las plataformas de CPU disponibles.
- Consulta más información sobre las regiones y las zonas.
- Consulta más información sobre los nodos.