Dans Kubernetes, les pods récemment créés et non planifiés sont automatiquement planifiés sur les nœuds répondant à leurs exigences. En utilisant l’affinité des nœuds, les altérations et les tolérances, vous pouvez mieux contrôler les nœuds sur lesquels les pods sont planifiés. Dans ArcGIS Enterprise on Kubernetes, vous pouvez gérer le placement des pods de service SIG récemment créés à partir d’ArcGIS Enterprise Manager.
L’affinité des nœuds vous permet de spécifier les règles qui contraignent les pods à s’exécuter sur certains nœuds étiquetés. Les altérations sont appliquées aux nœuds pour repousser les pods, tandis que les tolérances sont appliquées aux pods pour tolérer les altérations. Pour en savoir plus, consultez la documentation Kubernetes.
La combinaison de l’affinité des nœuds, des altérations et des tolérances vous permet d’affiner le placement des charges de travail afin d’améliorer l’isolement, d’optimiser l’allocation des ressources et de respecter efficacement les exigences de conformité au sein de votre clusterKubernetes :
- Isolez les charges de travail avec des exigences spécifiques : utilisez des étiquettes et des règles d’affinité des nœuds pour vous assurer que certains pods sont planifiés sur des nœuds dédiés. Utilisez des altérations pour marquer les nœuds possédant des caractéristiques spécifiques, tels que des exigences élevées en matière d’UC ou de mémoire, en tant que nœuds dédiés aux charges de travail ArcGIS. Appliquez ensuite des tolérances sur les pods de service pour vous assurer qu’ils sont planifiés sur des nœuds dotés des ressources nécessaires.
- Optimisez l’allocation des ressources : appliquez des altérations sur les nœuds disposant de ressources limitées pour empêcher la surcharge des ressources, et définissez des tolérances sur les pods de service pour apparier les contraintes de ressources sur ces nœuds : Combinez l’affinité des nœuds avec les altérations et les tolérances pour garantir que les pods de service sont uniquement planifiés sur les nœuds correspondant à leurs exigences en matière de ressources.
- Planification basée sur la géolocalisation : pour les applications qui nécessitent la localité des données ou l’adhésion à des réglementations spécifiques, utilisez l’affinité des nœuds pour planifier des pods de service en fonction de la localisation géographique des nœuds. Altérez les nœuds en fonction de leur emplacement physique ou des réglementations en matière de souveraineté des données, puis appliquez des tolérances sur les pods de service pour vous assurer qu’ils sont planifiés sur des nœuds et respectent les contraintes de localisation requises.
La mise à l’échelle automatique améliore l’utilisation de l’affinité des nœuds et des tolérances en ajustant automatiquement le nombre de pods en fonction des demandes de charge de travail. Cette mise à l’échelle dynamique garantit que les pods sont planifiés efficacement sur les nœuds qui respectent des critères spécifiques ou disposent des ressources nécessaires, en optimisant l’allocation des ressources. En combinant la mise à l’échelle automatique avec l’affinité des nœuds et les tolérances, les clusters Kubernetes peuvent améliorer l’utilisation des ressources, les performances et l’évolutivité, en s’adaptant aux fluctuations de la charge de travail tout en respectant les contraintes et les préférences de nœud. Pour en savoir plus sur la mise à l’échelle automatique, consultez la rubrique Évolution des services.
Scénarios
Pour mieux comprendre la façon dont votre organisation peut tirer parti de la gestion du placement des pods sur les services, consultez les scénarios suivants.
Scénario 1 : Progression du trafic saisonnier pour les services publics de cartographie
Un organisme public connaît une forte hausse du trafic pendant un festival local. Les utilisateurs qui accèdent à la carte Web pour consulter les informations relatives à l’événement subissent des retards en raison de la forte demande sur le service de carte sous-jacent. Pour y remédier, l’administrateur de l’organisation effectue les tâches suivantes :
- Il configure les nœuds disposant de ressources élevées en matière d’UC et de mémoire avec la paire clé-valeur high-performance: true.
- Il altère les nœuds à performances élevées avec workload=high-performance:NoSchedule.
- Il applique les règles d’affinité des nœuds pour garantir que les pods de service de carte sont planifiés sur des nœuds dotés de ressources élevées en matière d’UC et de mémoire :
- Type : Preferred (Préférentielle)
- Key (Clé) : high-performance
- Operator (Opérateur) : Exists (Existe)
- Value (Valeur) : true (vrai)
- Il applique des toléances pour permettre aux pods de s’exécuter sur des nœuds altérés pour des charges de travail à performances élevées, en s’assurant que le service de carte peut traiter la progression du trafic :
- Effect (Effet) : NoSchedule
- Key (Clé) : workload
- Operator (Opérateur) : Equal (Égal)
- Value (Valeur) : high-performance
Scénario 2 : Traitement des données pour le suivi environnemental
Une agence environnementale exécute une série d’analyses géospatiales pour suivre les modifications de l’utilisation du sol. L’analyse requiert d’importantes ressources de calcul et l’agence a dédié des nœuds avec des processeurs graphiques (GPU) dans ce but. Pour s’assurer que l’analyse géospatiale s’exécute efficacement sans entrer en concurrence avec d’autres services pour l'utilisation des ressources, l’administrateur de l’organisation :
- Configure des nœuds compatibles avec les processeurs graphiques (GPU) avec la paire clé-valeur gpu: true.
- Altère les nœuds GPU avec workload=high-resource:NoSchedule pour empêcher la planification de pods nécessitant moins de ressources.
- Applique les règles d’affinité des nœuds pour planifier les pods d’analyse sur les nœuds GPU :
- Type : Required (Obligatoire)
- Key (Clé) : gpu
- Operator (Opérateur) : In (Dans)
- Value (Valeur) : true (vrai)
- Applique des tolérances pour permettre aux pods de s’exécuter sur les nœuds GPU altérés :
- Effect (Effet) : NoSchedule
- Key (Clé) : workload
- Operator (Opérateur) : Equal (Égal)
- Value (Valeur) : high-resource
Scénario 3 : Optimisation des ressources pour les services d’entités partagés
Le service SIG d’une ville dispose de nombreux services d’entités qui ne sont pas fortement utilisés mais qui exercent collectivement une charge sur un seul déploiement de service. Pour permettre au service SIG de maintenir la disponibilité du service sans surcharger le système, l’administrateur de l’organisation :
- Configure les nœuds avec la clé resource-constrained.
- Altère les nœuds qui connaissent des contraintes de ressources avec resource-constrained:PreferNoSchedule.
- Applique les règles d’affinité des nœuds pour donner la priorité à la planification sur les nœuds avec une disponibilité moindre des ressources :
- Type : Preferred (Préférentielle)
- Key (Clé) : resource-constrained
- Operator (Opérateur) : DoesNotExist (N’existe pas)
- Applique des tolérances sur les pods de service d’entités pour garantir qu’ils sont planifiés sur des nœuds altérés malgré les contraintes :
- Effect (Effet) : PreferNoSchedule
- Key (Clé) : resource-constrained
- Operator (Opérateur) : Exists (Existe)
Gérer le placement des pods
Avant de gérer le placement des pods, configurez des groupes de nœuds en ajoutant les étiquettes que vous utiliserez pour définir l’affinité des nœuds et les altérations pour lesquelles vous définirez des tolérances.
Remarque :
Dans la plupart des environnements, vous pouvez regrouper vos charges de travail à l’aide de pools de nœuds ou de groupes de nœuds. Il est recommandé d’appliquer des étiquettes et des altérations à des groupes de nœuds plutôt qu’à des nœuds individuels dans ce processus.
Pour définir des règles d’affinité des nœuds et des tolérances pour les pods de service SIG récemment créés, procédez comme suit :
- Connectez-vous à ArcGIS Enterprise Manager en tant qu’administrateur.
- Cliquez sur le bouton Services dans la barre latérale.
- Sélectionnez le service SIG à gérer, puis cliquez sur l’onglet Pod placement (Placement des pods).
- Pour ajouter une règle d’affinité des nœuds à des pods, fournissez les informations suivantes dans la section Node affinity (Affinité des nœuds) et cliquez sur Add (Ajouter) :
- Type : type d’affinité des nœuds. Les types suivants sont disponibles :
- Preferred (Préférentielle) (PreferredDuringSchedulingIgnoredDuringExecution) : le pod préfère être planifié sur un nœud respectant la règle.
- Required (Obligatoire) (RequiredDuringSchedulingIgnoredDuringExecution) : le pod doit être planifié sur un nœud respectant la règle.
- Key (Clé) : clé de l’étiquette de nœud ou de l’annotation à laquelle la règle doit correspondre.
- Operator (Opérateur) : opérateur de la règle. Les opérateurs suivants sont disponibles :
- In (Dans) : l’étiquette de nœud ou l’annotation doit se trouver dans la liste de valeurs spécifiée.
- Not in (Pas dans) : l’étiquette de nœud ou l’annotation ne doit pas se trouver dans la liste de valeurs spécifiée.
- Exists (Existe) : le nœud doit comporter l’étiquette ou l’annotation spécifiée.
- Does not exist (N’existe pas) : le nœud ne doit pas comporter l’étiquette ou l’annotation spécifiée.
- Value (Valeur) : liste de valeurs à mettre en correspondance avec l’étiquette de nœud ou l’annotation.
- Type : type d’affinité des nœuds. Les types suivants sont disponibles :
- Pour ajouter des tolérances à des pods, indiquez les informations suivantes dans la section Tolerations (Tolérances) et cliquez sur Add (Ajouter) :
- Effect (Effet) : effet d’altération auquel doit correspondre la tolérance. Les effets suivants sont disponibles :
- No schedule (Ne pas planifier) : les nouveaux pods ne sont pas planifiés sur le nœud altéré sans tolérance correspondante.
- Prefer no schedule (Éviter de planifier) : les nouveaux pods essaient d’éviter d’être planifiés sur le nœud altéré sans tolérance correspondante, mais cela n’est pas garanti.
- Key (Clé) : clé de l’altération à laquelle doit correspondre la tolérance.
- Operator (Opérateur) : opérateur à utiliser pour la tolérance. Les opérateurs suivants sont disponibles :
- Equal (Égal) : le pod tolère une altération avec la clé et la valeur spécifiées.
- Exists (Existe) : le pod tolère une altération avec la clé spécifiée.
- Value (Valeur) : valeur de l’altération à laquelle doit correspondre la tolérance si l’opération est définie sur Equal (Égal).
- Effect (Effet) : effet d’altération auquel doit correspondre la tolérance. Les effets suivants sont disponibles :
- Cliquez sur Save (Enregistrer).
Mettez à jour les règles d’affinité des nœuds et les tolérances en cliquant sur le bouton Edit (Mettre à jour) en regard de chaque liste ou supprimez-les en cliquant sur le bouton Delete (Supprimer) .
Remarque :
Les pods déjà en cours d’exécution sur des nœuds ne seront pas évincés si une modification est apportée et que la règle ou la tolérance n’est plus respectée.
Vous avez un commentaire à formuler concernant cette rubrique ?