Recommandations concernant l'outil de redimensionnement automatique

Découvrez les meilleures pratiques d'utilisation de l'outil de redimensionnement automatique de cluster Kubernetes, de l'outil de redimensionnement automatique de pod horizontal et de l'outil de redimensionnement automatique de pod vertical avec des clusters créés par Kubernetes Engine (OKE).

Cette section présente les meilleures pratiques d'utilisation de l'outil de redimensionnement automatique de cluster Kubernetes, de l'outil de redimensionnement automatique de pod horizontal et de l'outil de redimensionnement automatique de pod vertical avec des clusters créés par Kubernetes Engine.

Le redimensionnement automatique est un moyen d'adapter dynamiquement (à la fois) le nombre de ressources de calcul allouées à une application en fonction de ses besoins. Vous pouvez utiliser :

  • Kubernetes Cluster Autoscaler pour redimensionner automatiquement les pools de noeuds d'un cluster en fonction de demandes de charge globale d'application.
  • Kubernetes Horizontal Pod Autoscaler pour mettre automatiquement à l'échelle le nombre de pods dans un déploiement.
  • l'outil de redimensionnement automatique de pod vertical Kubernetes permet d'ajuster automatiquement les limites et les demandes de ressource (telles que les attributs d'UC et de mémoire) pour les conteneurs exécutés dans les pods d'un déploiement.

Pour plus d'informations, reportez-vous à Redimensionnement automatique des pods et des pools de noeuds Kubernetes.

Meilleure pratique : Gérer manuellement au moins un pool de noeuds pour les modules d'extension de cluster critiques

Nous vous recommandons de toujours avoir au moins un pool de noeuds dans un cluster qui n'est pas géré par l'outil de redimensionnement automatique de cluster Kubernetes. Ce pool de noeuds est requis pour exécuter des extensions de cluster critiques. Sachez également qu'il est de votre responsabilité de redimensionner manuellement les pools de noeuds qui ne sont pas gérés par l'outil de redimensionnement automatique de cluster Kubernetes.

Nous vous recommandons également de programmer l'exécution de pods d'application sur des pools de noeuds utilisateur et l'exécution de pods système critiques (tels que des pods coredns) sur des pools de noeuds système dédiés. La séparation des pods d'application et des pods système empêche les pods d'application non fiables de tuer accidentellement les pods système. Appliquez ce comportement à l'aide de la tâche CriticalAddonsOnly=true:NoSchedule pour les pools de noeuds système.

Reportez-vous à Utilisation de l'outil de redimensionnement automatique de cluster Kubernetes.

Meilleure pratique : Définir plusieurs répliques

Nous vous recommandons de toujours définir plusieurs répliques pour le déploiement de l'outil de redimensionnement automatique de cluster Kubernetes dans le fichier de configuration. S'il n'existe qu'une seule réplique et que celle-ci est expulsée et ne peut pas être reprogrammée, l'outil de redimensionnement automatique de cluster Kubernetes ne peut pas créer plus de noeuds de processus actif.

Reportez-vous à Utilisation de l'outil de redimensionnement automatique de cluster Kubernetes.

Meilleure pratique : Définir max-node-provision-time

Nous vous recommandons de définir max-node-provision-time sur 25 minutes dans le fichier de configuration. En général, les nouveaux noeuds de processus actif sont provisionnés et passent à la condition Prêt en beaucoup moins de temps que cela. Toutefois, lorsque de nombreux noeuds sont ajoutés en même temps à un pool de noeuds, leur provisionnement peut prendre plus de temps. La console affiche un avertissement à côté des noeuds de processus actif dont l'initialisation prend plus de 20 minutes.

Reportez-vous à Utilisation de l'outil de redimensionnement automatique de cluster Kubernetes.

Meilleure pratique : Indiquer le nombre maximal de noeuds dans un pool de noeuds

Nous vous recommandons d'indiquer le nombre maximal de noeuds autorisés dans le pool de noeuds dans le fichier de configuration. Assurez-vous que le nombre maximal de noeuds que vous spécifiez ne dépasse pas la limite de location de la forme de noeud de processus actif définie pour le pool de noeuds. L'outil de redimensionnement automatique de cluster Kubernetes ne crée jamais plus de noeuds que la limite de location. Si vous indiquez un nombre supérieur à la limite de location, l'outil de redimensionnement automatique de cluster Kubernetes tente régulièrement de créer des noeuds supplémentaires mais ne le fait pas tant que la limite de location n'a pas été augmentée.

Lorsque vous définissez les clusters que l'outil de redimensionnement automatique de cluster Kubernetes doit gérer, nous vous recommandons de créer plusieurs pools de noeuds en spécifiant un domaine de disponibilité pour chacun d'eux.

Reportez-vous à Utilisation de l'outil de redimensionnement automatique de cluster Kubernetes.

Meilleure pratique : indiquer plusieurs pools de noeuds avec un domaine de disponibilité différent pour chaque pool de noeuds

Nous vous recommandons d'indiquer plusieurs pools de noeuds (avec un domaine de disponibilité différent pour chaque pool de noeuds) lors de la définition des clusters que l'outil de redimensionnement automatique de cluster Kubernetes doit gérer.

La spécification de plusieurs pools de noeuds dans différents domaines de disponibilité réduit la probabilité que l'outil de redimensionnement automatique de cluster Kubernetes ne puisse pas créer de noeuds de processus actif car une forme de noeud sélectionnée n'est pas disponible dans un domaine de disponibilité particulier.

Reportez-vous à Utilisation de l'outil de redimensionnement automatique de cluster Kubernetes.

Meilleure pratique : utiliser les réservations de capacité pour provisionner des noeuds de processus actif

Nous vous recommandons d'utiliser les réservations de capacité pour provisionner les noeuds de processus actif. L'utilisation de réservations de capacité garantit que la capacité de calcul est disponible pour les charges de travail lorsque cela est nécessaire lors d'événements critiques, tels que la récupération après sinistre ou les pics de charge de travail inattendus.

Reportez-vous à Utilisation de réservations de capacité pour provisionner des noeuds gérés.

Meilleure pratique : Concevoir des applications qui tirent parti des budgets de perturbation des pods

Nous vous recommandons de concevoir des applications de sorte à tolérer les perturbations qui peuvent se produire lorsque l'outil de redimensionnement automatique de cluster Kubernetes enlève des noeuds de travail ou déplace des pods vers un autre noeud de travail avant d'enlever un noeud de travail sous-utilisé.

Par exemple, concevez des applications qui tirent parti des budgets de perturbation de pod.

Reportez-vous à la section relative à la spécification d'un budget de perturbation pour votre application dans la documentation Kubernetes.

Meilleure pratique : Evitez de configurer manuellement les pools de noeuds gérés par l'outil de redimensionnement automatique de cluster Kubernetes

Evitez de modifier manuellement les pools de noeuds gérés par l'outil de redimensionnement automatique de cluster Kubernetes. Par exemple, n'ajoutez pas et n'enlevez pas de noeuds en utilisant kubectl ou la console (ou l'interface de ligne de commande ou l'API Oracle Cloud Infrastructure). L'outil de redimensionnement automatique de cluster Kubernetes peut modifier ces modifications ou celles-ci peuvent modifier son comportement.

Si vous voulez enlever tous les noeuds d'un pool de noeuds géré par l'outil de redimensionnement automatique de cluster Kubernetes, utilisez toujours l'outil de redimensionnement automatique de cluster Kubernetes pour mettre le pool de noeuds à zéro.

Reportez-vous à Utilisation de l'outil de redimensionnement automatique de cluster Kubernetes.

Meilleure pratique : évitez d'utiliser ensemble l'outil de redimensionnement automatique de pod horizontal Kubernetes et l'outil de redimensionnement automatique de pod vertical

Nous vous recommandons de ne pas utiliser l'outil de redimensionnement automatique de pod horizontal et l'outil de redimensionnement automatique de pod vertical ensemble.

L'outil de redimensionnement automatique de pod vertical ajuste automatiquement la configuration des demandes et des limites, et vise à réduire les frais généraux et à réaliser des économies.

L'outil de redimensionnement automatique de pod horizontal fait évoluer le nombre de pods en fonction de l'utilisation de l'UC ou de la mémoire, ou d'autres mesures. L'outil de redimensionnement automatique de pod horizontal est plus susceptible d'augmenter que de diminuer le nombre de pods.

Si vous utilisez l'outil de redimensionnement automatique de pod horizontal et l'outil de redimensionnement automatique de pod vertical ensemble, vérifiez à nouveau que leurs stratégies respectives n'interfèrent pas les unes avec les autres.

Meilleure pratique : Créer des recommandations sans les appliquer lors du développement d'applications

Nous vous recommandons d'envisager l'utilisation de l'outil de redimensionnement automatique de pod vertical lorsque vous en êtes aux premières étapes de l'écriture d'une application, simplement pour créer des recommandations (sans mettre à jour les pods).

Pour simplement créer des recommandations sans les appliquer, définissez updateMode: "Off" dans la section updatePolicy du manifeste VerticalPodAutoscaler. Lorsque des pods sont créés, l'outil de redimensionnement automatique de pod vertical analyse les besoins en UC et en mémoire des conteneurs, et enregistre ces recommandations dans son champ Status. L'outil de redimensionnement automatique de pod vertical ne prend aucune mesure pour mettre à jour les demandes de ressource pour les conteneurs en cours d'exécution.

Reportez-vous à Utilisation de l'outil de redimensionnement automatique de pod vertical Kubernetes.