Comparez les méthodes de planification des nœuds virtuels pour les clusters managés ACK et les clusters dédiés ACK afin de choisir celle qui correspond le mieux à votre scénario de planification.
Scénarios courants de planification sur nœuds virtuels
Planifiez les pods exclusivement sur des nœuds virtuels.
Privilégiez les nœuds ECS et basculez vers les nœuds virtuels lorsque les ressources ECS sont insuffisantes.
Pour un cluster managé ACK (édition Basic), utilisez le libellé alibabacloud.com/eci=true pour le premier scénario. Pour le second, migrez vers un cluster managé ACK (édition Pro).
Les clusters managés ACK (édition Pro) répondent mieux au deuxième scénario grâce à une fiabilité accrue, des garanties de SLA et une capacité plus importante. Vous pouvez migrer en toute transparence d'un cluster managé ACK (édition Basic) vers un cluster managé ACK (édition Pro).
Remarques d'utilisation
-
Le libellé
alibabacloud.com/eci=truepossède la priorité la plus élevée et remplace les méthodes de planification suivantes :Sémantiques natives de planification Kubernetes, telles que nodeSelector, l'affinité et l'anti-affinité, ainsi que les contraintes de répartition topologique des pods
ResourcePolicy
ElasticResource (annotation :
alibabacloud.com/burst-resource)
ElasticWorkload et ElasticResource (annotation :
alibabacloud.com/burst-resource) ne sont pas recommandés, car leur développement est inactif.Le composant virtual-kubelet-autoscaler n'est plus maintenu. Migrez votre cluster managé ACK (édition Basic) vers un cluster managé ACK (édition Pro) et désinstallez ce composant afin de libérer des ressources de nœud. Utilisez les sémantiques natives de planification Kubernetes pour mettre en œuvre un déploiement étendu et une planification basée sur l'affinité pour les pods ECI entre les zones.
-
Pour les pods exécutés sur des nœuds virtuels qui utilisent des volumes de disque provisionnés dynamiquement, les classes de stockage de type
WaitForFirstConsumerne sont pas prises en charge avec les méthodes de planification suivantes :Utilisation de libellés :
alibabacloud.com/eci=true.Spécification d'un nœud virtuel via nodeName.
Comparaison des solutions et recommandations de sélection
Les termes suivants sont utilisés dans les tableaux de comparaison :
-
Planification basée sur les priorités : lorsqu'un cluster comporte différents types de nœuds, configurez la priorité de planification. Par exemple, privilégiez les nœuds ECS et basculez vers les nœuds virtuels lorsque les ressources ECS sont insuffisantes.
Sans planification basée sur les priorités, vous ne pouvez pas attribuer de priorités entre les types de nœuds. Par exemple, le libellé
alibabacloud.com/eci=trueplanifie les pods uniquement sur des nœuds virtuels sans basculement prioritaire vers ECS. -
Politique de planification stricte : détermine si les règles de planification pour les différents types de pools de nœuds constituent des contraintes strictes.
Une politique non stricte est une contrainte souple. Par exemple, le champ preferredDuringSchedulingIgnoredDuringExecution de l'affinité de nœud privilégie les nœuds ECS, mais les pods peuvent toujours être planifiés sur des nœuds virtuels en raison de la politique de notation des nœuds.
Une politique stricte est une contrainte rigide. Par exemple, ResourcePolicy garantit que les pods sont planifiés sur des nœuds ECS lorsque les ressources suffisantes sont disponibles.
Cluster managé ACK (édition Pro)
|
Méthode de planification |
Scénario typique |
Planification basée sur les priorités |
Réduction préférentielle des pods ECI |
Recommandé |
Opérations associées |
|
|
Libellés : |
Planifie les pods uniquement sur des nœuds virtuels. Vous ne pouvez pas cibler un nœud virtuel spécifique. |
Non pris en charge |
N/A |
Recommandé |
||
|
Sémantiques natives de planification Kubernetes |
nodeSelector |
Avec une tolérance, planifiez les pods uniquement sur des nœuds virtuels et ciblez un nœud virtuel spécifique. |
Non pris en charge |
N/A |
Recommandé |
|
|
Affinité et anti-affinité |
Utilisez Taint, Toleration et NodeAffinity pour planifier les pods uniquement sur ECI, uniquement sur ECS ou de préférence sur ECS (par exemple, basculez vers des nœuds virtuels lorsque les ressources ECS sont insuffisantes). Cette méthode prend également en charge (et prend uniquement en charge) la réduction d'échelle des ECI en premier, puis des ECS. |
Pris en charge (politique de planification non stricte) |
Pris en charge |
Recommandé |
||
|
Contraintes de répartition topologique des pods |
Répartit les pods entre les zones pour assurer une haute disponibilité et de meilleures performances. |
Non pris en charge |
Pris en charge |
Recommandé |
||
|
ResourcePolicy Important
Dans la version 1.20, le planificateur ignore la vérification de l'impossibilité de planification pour les nœuds virtuels. Dans les versions 1.22 et ultérieures, seule la vérification des taints est ignorée. Pour conserver le comportement de la version 1.20, désactivez la fonctionnalité de planification des nœuds virtuels dans les paramètres du planificateur. |
|
Pris en charge (politique de planification stricte) |
Pris en charge |
Recommandé |
Personnaliser la planification basée sur les priorités pour les ressources élastiques |
|
|
UnitedDeployment |
Planifiez les pods sur ECS ou sur des nœuds virtuels en fonction du nombre de réplicas. Par exemple, utilisez des ECS par abonnement pour 10 réplicas ou moins, des instances préemptibles pour 11 à 20 réplicas et ECI pour plus de 20 réplicas. |
Pris en charge |
Pris en charge |
Recommandé |
||
|
Sémantiques natives de planification Kubernetes |
nodeSelector |
Avec une tolérance, planifiez les pods uniquement sur des nœuds virtuels et ciblez un nœud virtuel spécifique. |
Non pris en charge |
Pris en charge |
Non recommandé Par rapport à un cluster managé ACK (édition Pro), le kube-scheduler d'un cluster managé ACK (édition Basic) et d'un cluster dédié ACK ne peut pas percevoir l'inventaire sous-jacent lors de la planification, ce qui réduit la certitude de réussite de la création de pods. |
|
|
Affinité et anti-affinité |
Utilisez Taint, Toleration et NodeAffinity pour planifier les pods uniquement sur ECI, uniquement sur ECS ou de préférence sur ECS (par exemple, basculez vers des nœuds virtuels lorsque les ressources ECS sont insuffisantes). |
Pris en charge (politique de planification non stricte) |
Pris en charge |
|||
|
Contraintes de répartition topologique des pods |
Répartit les pods entre les zones pour assurer une haute disponibilité et de meilleures performances. |
Non pris en charge |
Pris en charge |
|||
|
ElasticWorkload (Développement inactif. Nous vous recommandons d'utiliser UnitedDeployment.) |
Regroupe et planifie les réplicas de Deployment sur des nœuds ECS ou des nœuds virtuels. |
Pris en charge |
Pris en charge |
Non recommandé |
Planifier des pods de charges de travail élastiques sur ECI à l'aide d'Elastic Workload (obsolète) |
|
|
ElasticResource (annotation : (Développement inactif) |
Seules deux politiques de planification élastique sont prises en charge :
|
Pris en charge |
Pris en charge |
Non recommandé |
Mettre en œuvre une planification élastique basée sur ECI à l'aide d'ElasticResource (obsolète) |
|
|
Composant virtual-kubelet-autoscaler (La maintenance a été interrompue) |
Prend uniquement en charge la planification des pods d'abord sur des nœuds ECS, puis sur des nœuds virtuels lorsque les ressources des nœuds ECS sont insuffisantes. |
Pris en charge |
Pris en charge |
Non recommandé |
Aucune |
|