3.10. Comprendre comment ajouter des métriques personnalisées autoscalers
Afin d’ajouter un programmeur automatique de mesures personnalisées, créez une ressource personnalisée ScaledObject pour un déploiement, un ensemble d’état ou une ressource personnalisée. Créez une ressource personnalisée ScaledJob pour un travail.
Il est possible de créer un seul objet à l’échelle pour chaque charge de travail que vous souhaitez mettre à l’échelle. En outre, vous ne pouvez pas utiliser un objet mis à l’échelle et le pod horizontal autoscaler (HPA) sur la même charge de travail.
3.10.1. Ajout d’un autoscaler de mesures personnalisées à une charge de travail Copier lienLien copié sur presse-papiers!
Il est possible de créer un programmeur automatique de mesures personnalisées pour une charge de travail créée par un objet de déploiement, StatefulSet ou une ressource personnalisée.
Conditions préalables
- Le Custom Metrics Autoscaler Operator doit être installé.
B) Si vous utilisez un autoscaleur de mesures personnalisées pour la mise à l’échelle basée sur CPU ou mémoire:
L’administrateur de votre cluster doit avoir des métriques de cluster correctement configurées. La commande PodMetrics <pod-name> permet de déterminer si les métriques sont configurées. Lorsque les métriques sont configurées, la sortie apparaît similaire à ce qui suit, avec CPU et mémoire affichés sous Utilisation.
oc describe PodMetrics openshift-kube-scheduler-ip-10-0-135-131.ec2.internal
$ oc describe PodMetrics openshift-kube-scheduler-ip-10-0-135-131.ec2.internal
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Les pods associés à l’objet que vous souhaitez mettre à l’échelle doivent inclure des limites de mémoire et de CPU spécifiées. À titre d’exemple:
Exemple pod spec
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Créez un fichier YAML similaire à ce qui suit. Le nom <2>, le nom de l’objet <4> et le type d’objet <5> sont seulement requis:
Exemple d’objet mis à l’échelle
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Facultatif : Spécifie que le Custom Metrics Autoscaler Operator est de mettre à l’échelle les répliques à la valeur spécifiée et d’arrêter l’autoscaling, comme décrit dans la section "Pause les métriques personnalisées autoscaler pour une charge de travail".
- 2
- Indique un nom pour cet autoscaleur de mesures personnalisées.
- 3
- Facultatif : Spécifie la version API de la ressource cible. La valeur par défaut est apps/v1.
- 4
- Indique le nom de l’objet que vous souhaitez mettre à l’échelle.
- 5
- Indique le type de déploiement, StatefulSet ou CustomResource.
- 6
- Facultatif: Spécifie le nom du conteneur dans la ressource cible, à partir de laquelle les métriques personnalisées autoscaler obtient des variables d’environnement contenant des secrets et ainsi de suite. La valeur par défaut est .spec.template.spec.containers[0].
- 7
- En option. Indique la période en secondes à attendre après que le dernier déclencheur soit signalé avant de mettre à l’échelle le déploiement à 0 si le minReplicaCount est réglé sur 0. La valeur par défaut est 300.
- 8
- Facultatif: Spécifie le nombre maximum de répliques lors de la mise à l’échelle. La valeur par défaut est 100.
- 9
- Facultatif: Spécifie le nombre minimum de répliques lors de la mise à l’échelle.
- 10
- Facultatif : Spécifie les paramètres des journaux d’audit tels que décrits dans la section « Configuring Audit logging ».
- 11
- Facultatif: Spécifie le nombre de répliques à revenir si un échelleur ne parvient pas à obtenir des métriques de la source pour le nombre de fois défini par le paramètre failThreshold. Consultez la documentation KEDA pour plus d’informations sur le comportement de repli.
- 12
- Facultatif: Spécifie l’intervalle en quelques secondes pour vérifier chaque déclencheur. La valeur par défaut est 30.
- 13
- Facultatif : Spécifie s’il faut remonter la ressource cible au nombre de répliques d’origine après que l’objet mis à l’échelle a été supprimé. La valeur par défaut est false, ce qui maintient le nombre de répliques tel qu’il est lorsque l’objet mis à l’échelle est supprimé.
- 14
- Facultatif: Spécifie un nom pour le pod horizontal autoscaler. La valeur par défaut est keda-hpa-{scaled-object-name}.
- 15
- Facultatif: Spécifie une politique de mise à l’échelle à utiliser pour contrôler le taux pour mettre à l’échelle des pods vers le haut ou vers le bas, comme décrit dans la section « Politiques de mise à l’échelle ».
- 16
- Indique le déclencheur à utiliser comme base de mise à l’échelle, comme décrit dans la section « Comprendre les déclencheurs automatiques de mesures personnalisées ». Cet exemple utilise Red Hat OpenShift Service sur la surveillance AWS.
- 17
- Facultatif: Spécifie une authentification de déclencheur ou une authentification de déclenchement de cluster. En savoir plus, consultez Comprendre les métriques personnalisées autoscaler l’authentification dans la section Ressources supplémentaires.
- Entrez TriggerAuthentication pour utiliser une authentification de déclenchement. C’est la valeur par défaut.
- Entrez ClusterTriggerAuthentication pour utiliser une authentification de déclencheur de cluster.
Créez les métriques personnalisées autoscaler en exécutant la commande suivante:
oc create -f <filename>.yaml
$ oc create -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
La vérification
Afficher la sortie de commande pour vérifier que l’autoscaler des métriques personnalisées a été créé:
oc get scaledobject <scaled_object_name>
$ oc get scaledobject <scaled_object_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME SCALETARGETKIND SCALETARGETNAME MIN MAX TRIGGERS AUTHENTICATION READY ACTIVE FALLBACK AGE scaledobject apps/v1.Deployment example-deployment 0 50 prometheus prom-triggerauthentication True True True 17s
NAME SCALETARGETKIND SCALETARGETNAME MIN MAX TRIGGERS AUTHENTICATION READY ACTIVE FALLBACK AGE scaledobject apps/v1.Deployment example-deployment 0 50 prometheus prom-triggerauthentication True True True 17s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow A noter les champs suivants dans la sortie:
- TRIGGERS: Indique le déclencheur, ou l’échelle, qui est utilisé.
- AUTHENTICATION : Indique le nom de toute authentification de déclenchement utilisée.
LIRE: Indique si l’objet mis à l’échelle est prêt à commencer la mise à l’échelle:
- Dans l’affirmative, l’objet mis à l’échelle est prêt.
- En cas de faux, l’objet mis à l’échelle n’est pas prêt en raison d’un problème dans un ou plusieurs des objets que vous avez créés.
ACTIVE: Indique si la mise à l’échelle a lieu:
- Et si c’est vrai, l’échelle est en cours.
- Dans le cas de False, la mise à l’échelle n’a pas lieu parce qu’il n’y a pas de mesures ou qu’il y a un problème dans un ou plusieurs des objets que vous avez créés.
FALLBACK: Indique si l’échelleur automatique de mesures personnalisées est capable d’obtenir des métriques à partir de la source
- Dans le cas de False, l’autoscaleur de mesures personnalisées obtient des métriques.
- Dans le cas de True, l’autoscaler des métriques personnalisées obtient des métriques parce qu’il n’y a pas de métriques ou qu’il y a un problème dans un ou plusieurs des objets que vous avez créés.