Configura grupos de nodos dedicados

Acerca de los grupos de nodos

Un grupo de nodos es un conjunto de nodos dentro de un clúster que tienen la misma configuración. Por lo general, debes definir grupos de nodos separados cuando tienes pods con diferentes requisitos de recursos. Por ejemplo, los pods apigee-cassandra requieren almacenamiento persistente, mientras que los otros pods de Apigee Hybrid no los necesitan.

En este tema, se explica cómo configurar grupos de nodos dedicados para una instalación híbrida.

Usa los nodeSelectors predeterminados

La práctica recomendada es configurar dos grupos de nodos dedicados: uno para los pods de Cassandra y otro para todos los demás pods del entorno de ejecución. Mediante las configuraciones predeterminadas de nodeSelector, el instalador asignará los pods de Cassandra a un grupo de nodos con estado llamado apigee-data y todos los demás pods a un grupo de nodos sin estado llamado apigee-runtime. Lo único que debes hacer es crear grupos de nodos con estos nombres, y Apigee Hybrid maneja los detalles de programación del pod por ti:

Nombre predeterminado del grupo de nodos Descripción
apigee-data Un grupo de nodos con estado.
apigee-runtime Un grupo de nodos sin estado.

A continuación, se muestra la configuración nodeSelector predeterminada. La propiedad apigeeData especifica un grupo de nodos para los pods de Cassandra. apigeeRuntime especifica el grupo de nodos para todos los demás pods. Puedes anular esta configuración predeterminada en tu archivo de anulaciones, como se explica más adelante en este tema:

nodeSelector:
  requiredForScheduling: true
  apigeeRuntime:
    key: "cloud.google.com/gke-nodepool"
    value: "apigee-runtime"
  apigeeData:
    key: "cloud.google.com/gke-nodepool"
    value: "apigee-data"

Para asegurarte de que tus pods se programen en los nodos correctos, crea dos grupos de nodos con los nombres apigee-data y apigee-runtime.

La propiedad requiredForScheduling

La sección de configuración nodeSelector tiene una propiedad llamada requiredForScheduling:

nodeSelector:
  requiredForScheduling: false
  apigeeRuntime:
    key: "cloud.google.com/gke-nodepool"
    value: "apigee-runtime"
  apigeeData:
    key: "cloud.google.com/gke-nodepool"
    value: "apigee-data"

Si se configura como false, los pods subyacentes se programarán si los grupos de nodos se definen o no con los nombres requeridos. Esto significa que, si te olvidas de crear grupos de nodos o si nombras accidentalmente un grupo de nodos distinto de apigee-runtime o apigee-data, la instalación del entorno de ejecución híbrido tendrá éxito. Kubernetes decidirá dónde ejecutar los pods.

Si configuras requiredForScheduling como true, la instalación fallará, a menos que haya grupos de nodos que coincidan con las claves y los valores de nodeSelector configurados.

Usa nombres de grupos de nodos personalizados

Si no quieres usar grupos de nodos con los nombres predeterminados, puedes crear grupos de nodos con nombres personalizados y especificar esos nombres en la estrofa nodeSelector. Por ejemplo, la siguiente configuración asigna los pods de Cassandra al grupo llamado my-cassandra-pool y todos los otros pods al grupo llamado my-runtime-pool:

nodeSelector:
  requiredForScheduling: false
  apigeeRuntime:
    key: "cloud.google.com/gke-nodepool"
    value: "my-runtime-pool"
  apigeeData:
    key: "cloud.google.com/gke-nodepool"
    value: "my-cassandra-pool"

Anula el grupo de nodos para componentes específicos en GKE

También puedes anular configuraciones de grupo de nodos a nivel de componente individual. Por ejemplo, la siguiente configuración asigna el grupo de nodos con el valor apigee-custom al componente runtime:

runtime:
  nodeSelector:
    key: cloud.google.com/gke-nodepool
    value: apigee-custom

Puedes especificar un grupo de nodos personalizado en cualquiera de estos componentes:

  • istio
  • mart
  • synchronizer
  • runtime
  • cassandra
  • udca
  • logger

Configuración del grupo de nodos de GKE y Google Distributed Cloud

En las plataformas de GKE y Google Distributed Cloud (GDC), los grupos de nodos deben tener un nombre único que proporciones cuando crees los grupos, y GKE/GDC etiqueta automáticamente cada nodo con lo siguiente:

cloud.google.com/gke-nodepool=THE_NODE_POOL_NAME

Siempre que crees grupos de nodos llamados apigee-data y apigee-runtime, no se requiere ninguna configuración adicional. Si deseas usar nombres de nodos personalizados, consulta Usa nombres de grupos de nodos personalizados.

Configuración del grupo de nodos en otras plataformas de Kubernetes

Consulta la documentación de tu plataforma de Kubernetes para obtener información sobre el etiquetado y la administración de grupos de nodos.

Si bien los grupos de nodos etiquetan automáticamente los nodos de trabajador de forma predeterminada, puedes etiquetarlos manualmente con los siguientes pasos:

  1. Ejecute el siguiente comando para obtener una lista de los nodos trabajadores en su clúster:
    kubectl -n APIGEE_NAMESPACE get nodes

    Si usas etiquetas personalizadas para grupos de nodos, asegúrate de que cada par clave-valor sea único. Por ejemplo:

    nodeSelector:
      requiredForScheduling: true
      apigeeRuntime:
        key: "pool1-key"
        value: "pool1-label"
      apigeeData:
        key: "pool2-key"
        value: "pool2-label"
    

    Anula el grupo de nodos para componentes específicos

    También puedes anular configuraciones de grupo de nodos a nivel de componente individual. Por ejemplo, la siguiente configuración asigna el grupo de nodos con el valor apigee-custom al componente runtime:

    runtime:
      nodeSelector:
        key: apigee.com/apigee-nodepool
        value: apigee-custom

    Puedes especificar un grupo de nodos personalizado en cualquiera de estos componentes:

    • apigeeingressgateway
    • cassandra
    • logger
    • mart
    • metrics
    • runtime
    • synchronizer
    • udca