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: false apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "apigee-runtime" apigeeData: key: "cloud.google.com/gke-nodepool" value: "apigee-data"
Nuevamente, para garantizar que tus pods se programen en los nodos correctos, lo único que debes hacer es crear 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
(predeterminado), 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
En GKE, los grupos de nodos deben tener un nombre único que proporcionas cuando creas los grupos, y GKE 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 de Anthos
Por el momento, Apigee Hybrid solo es compatible con Anthos 1.1.1. Esta versión de Anthos no admite la característica del grupo de nodos. Por lo tanto, debes etiquetar de forma manual los nodos trabajadores como se explica a continuación. Realiza los siguientes pasos una vez que tu clúster híbrido esté en funcionamiento:
- Ejecute el siguiente comando para obtener una lista de los nodos trabajadores en su clúster:
kubectl -n apigee get nodes
Salida de ejemplo:
NAME STATUS ROLES AGE VERSION apigee-092d639a-4hqt Ready <none> 7d v1.14.6-gke.2 apigee-092d639a-ffd0 Ready <none> 7d v1.14.6-gke.2 apigee-109b55fc-5tjf Ready <none> 7d v1.14.6-gke.2 apigee-c2a9203a-8h27 Ready <none> 7d v1.14.6-gke.2 apigee-c70aedae-t366 Ready <none> 7d v1.14.6-gke.2 apigee-d349e89b-hv2b Ready <none> 7d v1.14.6-gke.2
- Etiqueta cada nodo para diferenciar los nodos de entorno de ejecución y los de entorno.
Usa este comando para etiquetar los nodos:
kubectl label node NODE_NAME KEY=VALUE
Por ejemplo:
$ kubectl label node apigee-092d639a-4hqt apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-092d639a-ffd0 apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-109b55fc-5tjf apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-c2a9203a-8h27 apigee.com/apigee-nodepool=apigee-data $ kubectl label node apigee-c70aedae-t366 apigee.com/apigee-nodepool=apigee-data $ kubectl label node apigee-d349e89b-hv2b apigee.com/apigee-nodepool=apigee-data
Anula el grupo de nodos para componentes específicos en Anthos GKE
También puedes anular configuraciones de grupo de nodos a nivel de componente individual para una instalación de Anthos GKE. 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:
istio
mart
synchronizer
runtime
cassandra
udca
logger