À propos des pools de nœuds
Un pool de nœuds est un groupe de nœuds au sein d'un cluster qui possèdent tous la même configuration.
En règle générale, vous définissez des pools de nœuds distincts lorsque les pods ont des exigences de ressources différentes.
Par exemple, les pods apigee-cassandra
nécessitent un stockage persistant, contrairement aux autres pods Apigee hybrid.
Cet article explique comment configurer des pools de nœuds dédiés pour une installation hybride.
Utiliser les sélecteurs de nœuds par défaut
La bonne pratique consiste à configurer deux pools de nœuds dédiés : un pour les pods Cassandra et un pour tous les autres pods d'exécution. À l'aide des configurations nodeSelector par défaut, le programme d'installation attribue les pods Cassandra à un pool de nœuds avec état nommé apigee-data
et tous les autres pods à un pool de nœuds sans état nommé apigee-runtime
. Il vous suffit de créer des pools de nœuds portant ces noms, et Apigee hybrid gère les détails de planification de pod :
Nom du pool de nœuds par défaut | Description |
---|---|
apigee-data |
Un pool de nœuds avec état. |
apigee-runtime |
Un pool de nœuds sans état. |
Voici la configuration nodeSelector
par défaut. La propriété apigeeData
spécifie un pool de nœuds pour les pods Cassandra. Le fichier apigeeRuntime
spécifie le pool de nœuds pour tous les autres pods. Vous pouvez remplacer ces paramètres par défaut dans votre fichier de remplacement, comme expliqué plus bas dans cet article :
nodeSelector: requiredForScheduling: true apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "apigee-runtime" apigeeData: key: "cloud.google.com/gke-nodepool" value: "apigee-data"
Pour vous assurer que les pods sont programmés sur les bons nœuds, créez deux pools de nœuds portant les noms apigee-data
et apigee-runtime
.
Propriété requiredForScheduling
La section de configuration nodeSelector
possède une propriété appelée 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 elle est définie sur false
, les pods sous-jacents sont programmés, que les pools de nœuds soient définis ou non avec les noms requis. Cela signifie que si vous oubliez de créer des pools de nœuds ou si vous nommez accidentellement un pool de nœuds autre que apigee-runtime
ou apigee-data
, l'installation de l'environnement d'exécution hybride réussit. Kubernetes décidera où exécuter vos pods.
Si vous définissez requiredForScheduling
sur true
(valeur par défaut), l'installation échouera, sauf si des pools de nœuds correspondent aux clés et aux valeurs nodeSelector
configurées.
Utiliser des noms de pools de nœuds personnalisés
Si vous ne souhaitez pas utiliser les pools de nœuds avec les noms par défaut, vous pouvez créer des pools de nœuds avec des noms personnalisés et spécifier ces noms dans le stanza nodeSelector
. Par exemple, la configuration suivante attribue les pods Cassandra au pool nommé my-cassandra-pool
et tous les autres pods au pool nommé 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"
Remplacer le pool de nœuds pour des composants spécifiques sur GKE
Vous pouvez également remplacer les configurations de pool de nœuds au niveau du composant individuel. Par exemple, la configuration suivante attribue le pool de nœuds avec la valeur apigee-custom
au composant runtime
:
runtime: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-custom
Vous pouvez spécifier un pool de nœuds personnalisé sur l'un de ces composants :
istio
mart
synchronizer
runtime
cassandra
udca
logger
Configuration du pool de nœuds GKE
Dans GKE, les pools de nœuds doivent avoir un nom unique que vous fournissez lorsque vous créez les pools, et GKE attribue automatiquement un libellé à chaque nœud avec les caractéristiques suivantes :
cloud.google.com/gke-nodepool=THE_NODE_POOL_NAME
Tant que vous créez des pools de nœuds nommés apigee-data
et apigee-runtime
, aucune configuration supplémentaire n'est requise. Si vous souhaitez utiliser des noms de nœuds personnalisés, consultez la page Utiliser des noms de pools de nœuds personnalisés.
Ajouter manuellement des libellés aux nœuds
Apigee hybrid n'est actuellement compatible qu'avec Anthos 1.1.1. Cette version d'Anthos n'est pas compatible avec la fonctionnalité de pool de nœuds. Par conséquent, vous devez ajouter manuellement des libellés aux nœuds de calcul, comme expliqué ci-dessous. Une fois votre cluster hybride opérationnel, procédez comme suit :
- Exécutez la commande suivante pour obtenir la liste des nœuds de calcul du cluster :
kubectl -n APIGEE_NAMESPACE get nodes
Exemple de résultat :
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
- Étiquetez chaque nœud pour différencier les nœuds d'exécution et les nœuds de données.
Utilisez cette commande pour étiqueter les nœuds :
kubectl label node NODE_NAME KEY=VALUE
Exemple :
$ 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
Remplacer le pool de nœuds pour des composants spécifiques sur Anthos GKE
Vous pouvez également remplacer les configurations de pool de nœuds au niveau du composant individuel pour une installation Anthos GKE. Par exemple, la configuration suivante attribue le pool de nœuds avec la valeur apigee-custom
au composant runtime
:
runtime: nodeSelector: key: apigee.com/apigee-nodepool value: apigee-custom
Vous pouvez spécifier un pool de nœuds personnalisé sur l'un de ces composants :
istio
mart
synchronizer
runtime
cassandra
udca
logger