REST Resource: projects.locations.awsClusters.awsNodePools

Recurso: AwsNodePool

Un grupo de nodos de Anthos que se ejecuta en AWS.

Representación JSON
{
  "name": string,
  "version": string,
  "config": {
    object (AwsNodeConfig)
  },
  "autoscaling": {
    object (AwsNodePoolAutoscaling)
  },
  "subnetId": string,
  "state": enum (State),
  "uid": string,
  "reconciling": boolean,
  "createTime": string,
  "updateTime": string,
  "etag": string,
  "annotations": {
    string: string,
    ...
  },
  "maxPodsConstraint": {
    object (MaxPodsConstraint)
  },
  "errors": [
    {
      object (AwsNodePoolError)
    }
  ],
  "management": {
    object (AwsNodeManagement)
  },
  "kubeletConfig": {
    object (NodeKubeletConfig)
  },
  "updateSettings": {
    object (UpdateSettings)
  }
}
Campos
name

string

Nombre de este recurso.

Los nombres de los grupos de nodos tienen el formato projects/<project-number>/locations/<region>/awsClusters/<cluster-id>/awsNodePools/<node-pool-id>.

Para obtener más información sobre los nombres de recursos de Google Cloud, consulta Nombres de recursos.

version

string

Obligatorio. La versión de Kubernetes que se va a ejecutar en este grupo de nodos (por ejemplo, 1.19.10-gke.1000).

Puedes enumerar todas las versiones compatibles en una región de Google Cloud determinada llamando a locations.getAwsServerConfig.

config

object (AwsNodeConfig)

Obligatorio. Configuración del grupo de nodos.

autoscaling

object (AwsNodePoolAutoscaling)

Obligatorio. Configuración de la herramienta de ajuste automático de escala de este grupo de nodos.

subnetId

string

Obligatorio. La subred en la que se ejecuta el nodo del grupo de nodos.

state

enum (State)

Solo de salida. El estado del ciclo de vida del grupo de nodos.

uid

string

Solo de salida. Identificador único global del grupo de nodos.

reconciling

boolean

Solo de salida. Si se ha definido, actualmente hay cambios en curso en el grupo de nodos.

createTime

string (Timestamp format)

Solo de salida. Hora a la que se creó este grupo de nodos.

Usa RFC 3339, donde la salida generada siempre se normaliza con Z y usa 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otros desplazamientos distintos de "Z". Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Solo de salida. Hora a la que se actualizó este grupo de nodos por última vez.

Usa RFC 3339, donde la salida generada siempre se normaliza con Z y usa 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otros desplazamientos distintos de "Z". Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

etag

string

Permite a los clientes realizar lecturas, modificaciones y escrituras coherentes mediante el control de simultaneidad optimista.

Se puede enviar en las solicitudes de actualización y eliminación para asegurarse de que el cliente tiene un valor actualizado antes de continuar.

annotations

map (key: string, value: string)

Opcional. Anotaciones en el grupo de nodos.

Este campo tiene las mismas restricciones que las anotaciones de Kubernetes. El tamaño total de todas las claves y valores combinados no puede superar los 256 k. La clave puede tener dos segmentos: un prefijo (opcional) y un nombre (obligatorio), separados por una barra (/). El prefijo debe ser un subdominio de DNS. El nombre debe tener 63 caracteres como máximo, empezar y terminar con caracteres alfanuméricos, e incluir guiones (-), guiones bajos (_), puntos (.) y caracteres alfanuméricos.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

maxPodsConstraint

object (MaxPodsConstraint)

Obligatorio. Restricción sobre el número máximo de pods que se pueden ejecutar simultáneamente en un nodo del grupo de nodos.

errors[]

object (AwsNodePoolError)

Solo de salida. Conjunto de errores detectados en el grupo de nodos.

management

object (AwsNodeManagement)

Opcional. Configuración de gestión de este grupo de nodos.

kubeletConfig

object (NodeKubeletConfig)

Opcional. Configuraciones de kubelet de nodos.

updateSettings

object (UpdateSettings)

Opcional. Los ajustes de actualización controlan la velocidad y las interrupciones de la actualización.

AwsNodeConfig

Parámetros que describen los nodos de un clúster.

Representación JSON
{
  "instanceType": string,
  "rootVolume": {
    object (AwsVolumeTemplate)
  },
  "taints": [
    {
      object (NodeTaint)
    }
  ],
  "labels": {
    string: string,
    ...
  },
  "tags": {
    string: string,
    ...
  },
  "iamInstanceProfile": string,
  "imageType": string,
  "sshConfig": {
    object (AwsSshConfig)
  },
  "securityGroupIds": [
    string
  ],
  "proxyConfig": {
    object (AwsProxyConfig)
  },
  "configEncryption": {
    object (AwsConfigEncryption)
  },
  "instancePlacement": {
    object (AwsInstancePlacement)
  },
  "autoscalingMetricsCollection": {
    object (AwsAutoscalingGroupMetricsCollection)
  },
  "spotConfig": {
    object (SpotConfig)
  }
}
Campos
instanceType

string

Opcional. El tipo de instancia de EC2 al crear instancias bajo demanda.

Si no se especifica durante la creación del grupo de nodos, se elegirá un valor predeterminado en función de la versión del grupo de nodos y se asignará a este campo.

rootVolume

object (AwsVolumeTemplate)

Opcional. Plantilla del volumen raíz aprovisionado para los nodos del grupo de nodos. Los volúmenes se aprovisionarán en la zona de disponibilidad asignada a la subred del grupo de nodos.

Si no se especifica, se usa de forma predeterminada 32 GiB con el tipo de volumen GP2.

taints[]

object (NodeTaint)

Opcional. Taints iniciales asignados a los nodos de este grupo de nodos.

labels

map (key: string, value: string)

Opcional. Etiquetas iniciales asignadas a los nodos de este grupo de nodos. Un objeto que contiene una lista de pares "clave": valor. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

tags

map (key: string, value: string)

Opcional. Metadatos de clave/valor que se asignarán a cada recurso de AWS subyacente. Especifica un máximo de 50 pares que contengan caracteres alfanuméricos, espacios y símbolos (.+-=_:@/). Las claves pueden tener hasta 127 caracteres Unicode. Los valores pueden tener hasta 255 caracteres Unicode.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

iamInstanceProfile

string

Obligatorio. El nombre o el ARN del perfil de instancia de AWS IAM que se asignará a los nodos del grupo.

imageType

string

Opcional. El tipo de imagen de SO que se va a usar en las instancias del grupo de nodos. Puede no especificarse o tener el valor ubuntu.

Si no se especifica, se utiliza ubuntu de forma predeterminada.

sshConfig

object (AwsSshConfig)

Opcional. La configuración de SSH.

securityGroupIds[]

string

Opcional. Los IDs de los grupos de seguridad adicionales que se añadirán a los nodos de este grupo. El gestor creará automáticamente grupos de seguridad con las reglas mínimas necesarias para que el clúster funcione.

proxyConfig

object (AwsProxyConfig)

Opcional. Configuración de proxy para el tráfico HTTP(S) saliente.

configEncryption

object (AwsConfigEncryption)

Obligatorio. Configura el cifrado de los datos de usuario.

instancePlacement

object (AwsInstancePlacement)

Opcional. Información relacionada con la colocación de este nodo. Si no se especifica, se usará el aislamiento predeterminado de la VPC.

autoscalingMetricsCollection

object (AwsAutoscalingGroupMetricsCollection)

Opcional. Configuración relacionada con la recogida de métricas de CloudWatch en el grupo de escalado automático del grupo de nodos.

Si no se especifica, la recogida de métricas está inhabilitada.

spotConfig

object (SpotConfig)

Opcional. Configuración para aprovisionar instancias EC2 Spot

Si se especifica, el grupo de nodos aprovisionará instancias Spot del conjunto de spotConfig.instance_types. Este campo se excluye mutuamente con instanceType.

AwsAutoscalingGroupMetricsCollection

Configuración relacionada con la recogida de métricas de CloudWatch en un grupo de escalado automático de AWS.

Representación JSON
{
  "granularity": string,
  "metrics": [
    string
  ]
}
Campos
granularity

string

Obligatorio. La frecuencia con la que EC2 Auto Scaling envía datos agregados a AWS CloudWatch. El único valor válido es "1Minute".

metrics[]

string

Opcional. Las métricas que se van a habilitar. Para ver una lista de las métricas válidas, consulta https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_EnableMetricsCollection.html. Si especifica la granularidad, pero no indica ninguna métrica, se habilitarán todas las métricas.

SpotConfig

SpotConfig contiene información de configuración del nodo Spot.

Representación JSON
{
  "instanceTypes": [
    string
  ]
}
Campos
instanceTypes[]

string

Obligatorio. Lista de tipos de instancias para crear un grupo de nodos esporádicos.

AwsNodePoolAutoscaling

AwsNodePoolAutoscaling contiene la información que necesita la herramienta de escalado automático de clústeres para ajustar el tamaño del grupo de nodos al uso actual del clúster.

Representación JSON
{
  "minNodeCount": integer,
  "maxNodeCount": integer
}
Campos
minNodeCount

integer

Obligatorio. Número mínimo de nodos del grupo de nodos. Debe ser mayor o igual que 1 y menor o igual que maxNodeCount.

maxNodeCount

integer

Obligatorio. Número máximo de nodos del grupo de nodos. Debe ser mayor o igual que minNodeCount y menor o igual que 50.

Estado

El estado del ciclo de vida del grupo de nodos.

Enumeraciones
STATE_UNSPECIFIED Sin definir.
PROVISIONING El estado PROVISIONING indica que se está creando el grupo de nodos.
RUNNING El estado RUNNING indica que el grupo de nodos se ha creado y se puede usar por completo.
RECONCILING El estado RECONCILING indica que el grupo de nodos se está conciliando.
STOPPING El estado STOPPING indica que se está eliminando el grupo de nodos.
ERROR El estado ERROR indica que el grupo de nodos está en un estado dañado irrecuperable.
DEGRADED El estado DEGRADED indica que el grupo de nodos requiere que el usuario realice alguna acción para restaurar la funcionalidad completa.

AwsNodePoolError

AwsNodePoolError describe los errores encontrados en los grupos de nodos de AWS.

Representación JSON
{
  "message": string
}
Campos
message

string

Descripción del error legible por humanos.

AwsNodeManagement

AwsNodeManagement define el conjunto de funciones de gestión de nodos activadas en un grupo de nodos de AWS.

Representación JSON
{
  "autoRepair": boolean
}
Campos
autoRepair

boolean

Opcional. Indica si los nodos se repararán automáticamente o no. Si se le asigna el valor true, los nodos de este pool de nodos se monitorizarán y, si no superan las comprobaciones del estado de forma constante durante un periodo, se activará una acción de reparación automática para sustituirlos por nodos nuevos.

NodeKubeletConfig

Configuración de las opciones de kubelet del grupo de nodos.

Representación JSON
{
  "insecureKubeletReadonlyPortEnabled": boolean,
  "cpuManagerPolicy": string,
  "cpuCfsQuota": boolean,
  "cpuCfsQuotaPeriod": string,
  "podPidsLimit": string
}
Campos
insecureKubeletReadonlyPortEnabled

boolean

Opcional. Habilita el puerto de solo lectura de kubelet no seguro.

cpuManagerPolicy

string

Opcional. Controla la política de gestión de la CPU en el nodo. Consulta https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/.

Se permiten los siguientes valores. * "none": es el valor predeterminado y representa el comportamiento de programación actual. * "estático": permite que los pods con determinadas características de recursos tengan una mayor afinidad y exclusividad de CPU en el nodo. Si no se especifica ningún valor, se utiliza "none" de forma predeterminada.

cpuCfsQuota

boolean

Opcional. Habilita la aplicación de la cuota de CFS de CPU para los contenedores que especifican límites de CPU.

Esta opción está habilitada de forma predeterminada, lo que hace que kubelet use la cuota de CFS (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) para aplicar los límites de CPU de los contenedores. De lo contrario, los límites de CPU no se aplicarán.

Inhabilita esta opción para mitigar los problemas de limitación de la CPU y, al mismo tiempo, hacer que tus pods pertenezcan a la clase de QoS Garantizada especificando los límites de la CPU.

Si no se especifica ningún valor, se utiliza "true" de forma predeterminada.

cpuCfsQuotaPeriod

string

Opcional. Define el valor del periodo de cuota de CFS de CPU "cpu.cfs_period_us".

La cadena debe ser una secuencia de números decimales, cada uno con una fracción opcional y un sufijo de unidad, como "300ms". Las unidades de tiempo válidas son "ns", "us" (o "µs"), "ms", "s", "m" y "h". El valor debe ser una duración positiva.

Si no se especifica, el valor predeterminado es "100 ms".

podPidsLimit

string (int64 format)

Opcional. Define los límites de PID de los pods. Consulta https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits.

Controla el número máximo de procesos que se pueden ejecutar en un pod. El valor debe ser igual o superior a 1024 e inferior a 4194304.

UpdateSettings

UpdateSettings controla el nivel de paralelismo y el nivel de interrupción que se produce durante la actualización de un grupo de nodos.

Estos ajustes se aplican cuando la actualización del grupo de nodos requiere sustituir los nodos del grupo de nodos por los actualizados.

UpdateSettings es opcional. Si no se especifica UpdateSettings durante la creación del grupo de nodos, se elige un valor predeterminado en función de la versión del clúster superior. En los clústeres con la versión secundaria 1.27 y posteriores, se usa una configuración de surgeSettings predeterminada con maxSurge = 1 y maxUnavailable = 0. En los clústeres con versiones anteriores, las actualizaciones de grupos de nodos usan el mecanismo tradicional de actualización gradual, que consiste en actualizar los nodos de uno en uno con la opción "finalizar antes de crear", y updateSettings no se puede aplicar.

Define el parámetro surgeSettings para usar el mecanismo de actualización de picos en la actualización gradual de los nodos del grupo de nodos. 1. maxSurge controla el número de nodos adicionales que se pueden crear temporalmente más allá del tamaño actual del grupo de nodos durante la actualización para aumentar el número de nodos disponibles. 2. maxUnavailable controla el número de nodos que pueden no estar disponibles simultáneamente durante la actualización. 3. La suma de maxSurge y maxUnavailable determina el nivel de paralelismo (es decir, el número de nodos que se actualizan al mismo tiempo).

Representación JSON
{
  "surgeSettings": {
    object (SurgeSettings)
  }
}
Campos
surgeSettings

object (SurgeSettings)

Opcional. Ajustes de actualización de subidas.

SurgeSettings

SurgeSettings contiene los parámetros de la actualización de Surge.

Representación JSON
{
  "maxSurge": integer,
  "maxUnavailable": integer
}
Campos
maxSurge

integer

Opcional. El número máximo de nodos que se pueden crear además del tamaño actual del grupo de nodos durante el proceso de actualización.

maxUnavailable

integer

Opcional. El número máximo de nodos que pueden no estar disponibles simultáneamente durante el proceso de actualización. Se considera que un nodo no está disponible si su estado no es Ready.

Métodos

create
(deprecated)

Crea un AwsNodePool y lo adjunta a un AwsCluster determinado.

delete
(deprecated)

Elimina un recurso AwsNodePool específico.

get
(deprecated)

Describe un recurso AwsNodePool específico.

list
(deprecated)

Muestra todos los recursos AwsNodePool de un AwsCluster determinado.

patch
(deprecated)

Actualiza un AwsNodePool.

rollback
(deprecated)

Deshace una solicitud de actualización de AwsNodePool que se haya cancelado o fallado anteriormente.