REST Resource: projects.locations.awsClusters.awsNodePools

Recurso: AwsNodePool

Un grupo de nodos 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

El 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 detalles sobre los nombres de los recursos de Google Cloud, consulte Nombres de recursos

version

string

Obligatorio. La versión de Kubernetes que se ejecutará en este grupo de nodos (p. ej., 1.19.10-gke.1000 ).

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

config

object ( AwsNodeConfig )

Obligatorio. La configuración del grupo de nodos.

autoscaling

object ( AwsNodePoolAutoscaling )

Obligatorio. Configuración del escalador automático para este grupo de nodos.

subnet Id

string

Obligatorio. La subred donde se ejecuta el nodo del grupo de nodos.

state

enum ( State )

Solo salida. Estado del ciclo de vida del grupo de nodos.

uid

string

Solo salida. Un identificador único global para el grupo de nodos.

reconciling

boolean

Solo salida. Si se configura, hay cambios en curso en el grupo de nodos.

create Time

string ( Timestamp format)

Solo salida. Hora de creación de este grupo de nodos.

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

update Time

string ( Timestamp format)

Solo salida. Hora de la última actualización de este grupo de nodos.

Utiliza la RFC 3339, donde la salida generada siempre se normalizará en Z y usará 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan 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 consistentes a través de un control de concurrencia optimista.

Se puede enviar en solicitudes de actualización y eliminación para garantizar que el cliente tenga 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 está limitado a 256k. La clave puede tener dos segmentos: prefijo (opcional) y nombre (obligatorio), separados por una barra diagonal (/). El prefijo debe ser un subdominio DNS. El nombre debe tener 63 caracteres o menos, empezar y terminar con caracteres alfanuméricos, con guiones (-), guiones bajos (_), puntos (.) y caracteres alfanuméricos entre ellos.

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

max Pods Constraint

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 salida. Se encontró un conjunto de errores en el grupo de nodos.

management

object ( AwsNodeManagement )

Opcional. La configuración de administración para este grupo de nodos.

kubelet Config

object ( NodeKubeletConfig )

Opcional. Configuraciones de nodo kubelet.

update Settings

object ( UpdateSettings )

Opcional. La configuración de actualización controla la velocidad y la interrupción de la actualización.

Configuración de nodo de AWS

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
instance Type

string

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

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

root Volume

object ( AwsVolumeTemplate )

Opcional. Plantilla para el 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.

Cuando no se especifica, el valor predeterminado es 32 GiB con el tipo de volumen GP2.

taints[]

object ( NodeTaint )

Opcional. Las manchas iniciales asignadas a los nodos de este grupo de nodos.

labels

map (key: string, value: string)

Opcional. Las etiquetas iniciales asignadas a los nodos de este grupo de nodos. Un objeto que contiene una lista de pares "clave":valor. Ejemplo: { "nombre": "llave", "masa": "1.3kg", "cuenta": "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 para asignar a cada recurso subyacente de AWS. Especifique un máximo de 50 pares que contengan 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" } .

iam Instance Profile

string

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

image Type

string

Opcional. El tipo de imagen del sistema operativo que se usará en las instancias del grupo de nodos. Puede no especificarse o tener el valor ubuntu .

Cuando no se especifica, el valor predeterminado es ubuntu .

ssh Config

object ( AwsSshConfig )

Opcional. La configuración de SSH.

security Group Ids[]

string

Opcional. Los ID de los grupos de seguridad adicionales que se añadirán a los nodos de este grupo. El administrador creará automáticamente grupos de seguridad con las reglas mínimas necesarias para un clúster en funcionamiento.

proxy Config

object ( AwsProxyConfig )

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

config Encryption

object ( AwsConfigEncryption )

Obligatorio. Configurar el cifrado para los datos del usuario.

instance Placement

object ( AwsInstancePlacement )

Opcional. Información relacionada con la ubicación de este nodo. Si no se especifica, se utilizará la tenencia predeterminada de la VPC.

autoscaling Metrics Collection

object ( AwsAutoscalingGroupMetricsCollection )

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

Cuando no se especifica, la recopilación de métricas está deshabilitada.

spot Config

object ( SpotConfig )

Opcional. Configuración para el aprovisionamiento de instancias Spot de EC2

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

Colección de métricas de grupo de escalamiento automático de AWS

Configuración relacionada con la recopilación de métricas de CloudWatch en un grupo de AWS Auto Scaling.

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 "1 minuto".

metrics[]

string

Opcional. Métricas que se habilitarán. Para obtener una lista de métricas válidas, consulte https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_EnableMetricsCollection.html . Si especifica la granularidad y no especifica ninguna métrica, se habilitarán todas.

Configuración puntual

SpotConfig tiene información de configuración para el nodo Spot.

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

string

Obligatorio. Lista de tipos de instancias para crear un grupo de nodos puntuales.

Escalado automático de AWSNodePool

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

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

integer

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

max Node Count

integer

Obligatorio. Número máximo de nodos en el 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 No establecido.
PROVISIONING El estado APROVISIONAMIENTO indica que se está creando el grupo de nodos.
RUNNING El estado EN EJECUCIÓN indica que el grupo de nodos se ha creado y es completamente utilizable.
RECONCILING El estado RECONCILIANDO indica que el grupo de nodos se está reconciliando.
STOPPING El estado DETENCIÓN indica que se está eliminando el grupo de nodos.
ERROR El estado ERROR indica que el grupo de nodos se encuentra en un estado dañado e irrecuperable.
DEGRADED El estado DEGRADADO indica que el grupo de nodos requiere la acción del usuario para restaurar la funcionalidad completa.

Error de grupo de nodos de AWS

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

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

string

Descripción del error, entendible para los humanos.

Gestión de nodos de AWS

AwsNodeManagement define el conjunto de funciones de administración de nodos activadas para un grupo de nodos de AWS.

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

boolean

Opcional. Si los nodos se repararán automáticamente. Si se establece como verdadero, los nodos de este grupo se supervisarán y, si fallan las comprobaciones de estado de forma constante durante un periodo, se activará una reparación automática para reemplazarlos por nuevos nodos.

Configuración de NodeKubelet

Configuración para las opciones del grupo de nodos Kubelet.

Representación JSON
{
  "insecureKubeletReadonlyPortEnabled": boolean,
  "cpuManagerPolicy": string,
  "cpuCfsQuota": boolean,
  "cpuCfsQuotaPeriod": string,
  "podPidsLimit": string
}
Campos
insecure Kubelet Readonly Port Enabled

boolean

Opcional. Habilite el puerto de solo lectura inseguro de kubelet.

cpu Manager Policy

string

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

Se permiten los siguientes valores: * "none": el valor predeterminado, que representa el comportamiento de programación existente. * "static": permite que los pods con ciertas características de recursos obtengan mayor afinidad de CPU y exclusividad en el nodo. El valor predeterminado es "none" si no se especifica.

cpu Cfs Quota

boolean

Opcional. Habilite la aplicación de cuotas de CPU CFS para contenedores que especifican límites de CPU.

Esta opción está habilitada por defecto, 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 del contenedor. De lo contrario, no se aplicarán.

Deshabilite esta opción para mitigar los problemas de limitación de la CPU y mantener sus pods en la clase de QoS garantizada especificando los límites de la CPU.

El valor predeterminado es 'verdadero' si no se especifica.

cpu Cfs Quota Period

string

Opcional. Establezca el valor del período 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 "300 ms". Las unidades de tiempo válidas son "ns", "us" (o "µs"), "ms", "s", "m" y "h". El valor debe ser una duración positiva.

El valor predeterminado es '100ms' si no se especifica.

pod Pids Limit

string ( int64 format)

Opcional. Establezca los límites del PID del pod. Consulte https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits

Controla el número máximo de procesos permitidos para ejecutarse en un pod. El valor debe ser mayor o igual a 1024 y menor a 4194304.

Actualizar configuración

UpdateSettings controla el nivel de paralelismo y el nivel de interrupción causados ​​durante la actualización de un grupo de nodos.

Estas configuraciones se aplican cuando la actualización del grupo de nodos requiere reemplazar los nodos del grupo de nodos existentes por los actualizados.

Los ajustes de actualización son opcionales. Si no se especifican durante la creación del grupo de nodos, se elige un valor predeterminado basado en la versión del clúster principal. Para clústeres con la versión secundaria 1.27 y posteriores, se utiliza una configuración predeterminada de surgeSettings con maxSurge = 1 y maxUnavailable = 0. Para clústeres con versiones anteriores, las actualizaciones del grupo de nodos utilizan el mecanismo tradicional de actualización continua, que consiste en actualizar un nodo a la vez con el método "finalizar antes de crear", y updateSettings no es aplicable.

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

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

object ( SurgeSettings )

Opcional. Configuración para actualización de sobretensión.

Ajustes de sobretensión

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

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

integer

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

max Unavailable

integer

Opcional. El número máximo de nodos que pueden estar indisponibles simultáneamente durante el proceso de actualización. Un nodo se considera indisponible si su estado no es Listo.

Métodos

create

Crea un nuevo AwsNodePool , adjunto a un AwsCluster determinado.

delete

Elimina un recurso AwsNodePool específico.

get

Describe un recurso AwsNodePool específico.

list

Enumera todos los recursos de AwsNodePool en un AwsCluster determinado.

patch

Actualiza un AwsNodePool .

rollback

Revierte una solicitud de actualización AwsNodePool cancelada o fallida anteriormente.