2.5. Mise à l'échelle automatique des pods en fonction de mesures personnalisées


En tant que développeur, vous pouvez utiliser le custom metrics autoscaler pour spécifier comment OpenShift Container Platform doit automatiquement augmenter ou diminuer le nombre de pods pour un déploiement, un stateful set, une ressource personnalisée ou un job basé sur des métriques personnalisées qui ne sont pas basées uniquement sur le CPU ou la mémoire.

L'opérateur Custom Metrics Autoscaler pour Red Hat OpenShift est un opérateur optionnel, basé sur Kubernetes Event Driven Autoscaler (KEDA), qui permet aux charges de travail d'être mises à l'échelle en utilisant des sources de métriques supplémentaires autres que les métriques de pod.

Note

L'autoscaler de métriques personnalisées ne prend actuellement en charge que les métriques Prometheus, CPU, mémoire et Apache Kafka.

Important

L'autoscaler de métriques personnalisé est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas leur utilisation en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.

Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.

2.5.1. Notes de mise à jour de Custom Metrics Autoscaler Operator

Les notes de mise à jour de Custom Metrics Autoscaler Operator pour Red Hat Openshift décrivent les nouvelles fonctionnalités et améliorations, les fonctionnalités obsolètes et les problèmes connus.

Le Custom Metrics Autoscaler Operator utilise l'Event Driven Autoscaler (KEDA) basé sur Kubernetes et est construit sur le pod autoscaler horizontal (HPA) d'OpenShift Container Platform.

Note

Custom Metrics Autoscaler Operator pour Red Hat OpenShift est fourni en tant que composant installable, avec un cycle de publication distinct de celui de la plate-forme OpenShift Container Platform. La politique de cycle de vie de Red Hat OpenShift Container Platform décrit la compatibilité des versions.

2.5.1.1. Versions prises en charge

Le tableau suivant définit les versions de Custom Metrics Autoscaler Operator pour chaque version d'OpenShift Container Platform.

VersionVersion d'OpenShift Container PlatformDisponibilité générale

2.8.2-174

4.12

Avant-première technologique

2.8.2-174

4.11

Avant-première technologique

2.8.2-174

4.10

Avant-première technologique

2.5.1.2. Notes de publication de Custom Metrics Autoscaler Operator 2.8.2-174

Cette version de Custom Metrics Autoscaler Operator 2.8.2-174 fournit de nouvelles fonctionnalités et des corrections de bugs pour l'exécution de l'Operator dans un cluster OpenShift Container Platform. Les composants de Custom Metrics Autoscaler Operator 2.8.2-174 ont été publiés dans RHEA-2023:1683.

Important

Le Custom Metrics Autoscaler Operator est actuellement une fonctionnalité en avant-première technologique.

2.5.1.2.1. Nouvelles fonctionnalités et améliorations
2.5.1.2.1.1. Aide à la mise à niveau de l'opérateur

Vous pouvez désormais mettre à niveau une version antérieure de l'opérateur Custom Metrics Autoscaler. Voir "Changer le canal de mise à jour d'un opérateur" dans "Ressources supplémentaires" pour plus d'informations sur la mise à niveau d'un opérateur.

2.5.1.2.1.2. soutien indispensable

Vous pouvez désormais collecter des données sur l'opérateur Custom Metrics Autoscaler et ses composants en utilisant l'outil OpenShift Container Platform must-gather. Actuellement, le processus d'utilisation de l'outil must-gather avec Custom Metrics Autoscaler est différent de celui des autres opérateurs. Voir "Gathering debugging data in the \N- Additional resources\N" (Collecte de données de débogage dans les ressources supplémentaires) pour plus d'informations.

2.5.1.3. Notes de publication de Custom Metrics Autoscaler Operator 2.8.2

Cette version de Custom Metrics Autoscaler Operator 2.8.2 apporte de nouvelles fonctionnalités et des corrections de bugs pour l'exécution de l'Operator dans un cluster OpenShift Container Platform. Les composants de Custom Metrics Autoscaler Operator 2.8.2 ont été publiés dans la RHSA-2023:1042.

Important

Le Custom Metrics Autoscaler Operator est actuellement une fonctionnalité en avant-première technologique.

2.5.1.3.1. Nouvelles fonctionnalités et améliorations
2.5.1.3.1.1. Enregistrement des audits

Vous pouvez désormais rassembler et afficher les journaux d'audit de Custom Metrics Autoscaler Operator et de ses composants associés. Les journaux d'audit sont des ensembles chronologiques d'enregistrements relatifs à la sécurité qui documentent la séquence des activités qui ont affecté le système par des utilisateurs individuels, des administrateurs ou d'autres composants du système.

2.5.1.3.1.2. Faire évoluer les applications en fonction des mesures d'Apache Kafka

Vous pouvez maintenant utiliser le KEDA Apache kafka trigger/scaler pour mettre à l'échelle des déploiements basés sur un sujet Apache Kafka.

Important

L'autoscaling basé sur les métriques Apache Kafka est une fonctionnalité Technology Preview (TP) dans toutes les versions TP de Custom Metrics Autoscaler et dans la version Custom Metrics Autoscaler General Availability.

Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas leur utilisation en production.

2.5.1.3.1.3. Mise à l'échelle des applications en fonction des paramètres de l'unité centrale

Vous pouvez désormais utiliser le déclencheur/échelle de CPU de KEDA pour échelonner les déploiements en fonction des métriques de CPU.

2.5.1.3.1.4. Mise à l'échelle des applications en fonction des mesures de la mémoire

Vous pouvez désormais utiliser le déclencheur/échelle de mémoire KEDA pour échelonner les déploiements en fonction des mesures de mémoire.

2.5.2. Comprendre l'autoscaler de métriques personnalisées

L'opérateur Autoscaler Custom Metrics fait évoluer vos pods vers le haut ou vers le bas en fonction de mesures externes personnalisées provenant d'applications spécifiques. Vos autres applications continuent d'utiliser d'autres méthodes de mise à l'échelle. Vous configurez triggers, également appelé scalers, qui est la source d'événements et de métriques que l'autoscaler de métriques personnalisées utilise pour déterminer comment procéder à la mise à l'échelle. L'autoscaler de métriques personnalisées utilise une API de métriques pour convertir les métriques externes en une forme utilisable par OpenShift Container Platform. Le custom metrics autoscaler crée un pod autoscaler horizontal (HPA) qui effectue la mise à l'échelle réelle.

Pour utiliser l'autoscaler de métriques personnalisées, vous devez créer un objet ScaledObject ou ScaledJob, qui est une ressource personnalisée (CR) définissant les métadonnées de mise à l'échelle. Vous spécifiez le déploiement ou le travail à mettre à l'échelle, la source des métriques à mettre à l'échelle (déclencheur) et d'autres paramètres tels que les nombres minimum et maximum de réplicas autorisés.

Note

Vous ne pouvez créer qu'un seul objet ou travail mis à l'échelle pour chaque charge de travail que vous souhaitez mettre à l'échelle. Vous ne pouvez pas non plus utiliser un objet ou un travail mis à l'échelle et le pod autoscaler horizontal (HPA) sur la même charge de travail.

Contrairement au HPA, l'autoscaler de métriques personnalisé peut s'adapter à zéro. Si vous définissez la valeur minReplicaCount dans le Custom Metrics Autoscaler CR sur 0, le Custom Metrics Autoscaler met à l'échelle la charge de travail de 1 à 0 réplica ou de 0 à 1 réplica. C'est ce qu'on appelle activation phase. Après avoir mis à l'échelle jusqu'à 1 réplica, le HPA prend le contrôle de la mise à l'échelle. C'est ce qu'on appelle scaling phase.

Certains déclencheurs permettent de modifier le nombre de répliques mises à l'échelle par l'autoscaler de métriques de cluster. Dans tous les cas, le paramètre permettant de configurer la phase d'activation utilise toujours la même phrase, préfixée par activation. Par exemple, si le paramètre threshold configure la mise à l'échelle, activationThreshold configure l'activation. La configuration des phases d'activation et de mise à l'échelle vous offre une plus grande flexibilité dans vos politiques de mise à l'échelle. Par exemple, vous pouvez configurer une phase d'activation plus élevée pour empêcher la mise à l'échelle vers le haut ou vers le bas si la métrique est particulièrement basse.

La valeur d'activation est plus prioritaire que la valeur de mise à l'échelle en cas de décisions différentes pour chacune d'entre elles. Par exemple, si threshold est défini sur 10 et activationThreshold sur 50, si la métrique indique 40, le scaler n'est pas actif et les pods sont mis à l'échelle à zéro, même si l'APH nécessite 4 instances.

Vous pouvez vérifier que la mise à l'échelle automatique a eu lieu en examinant le nombre de pods dans votre ressource personnalisée ou en examinant les journaux de l'opérateur Autoscaler de Custom Metrics à la recherche de messages similaires à ceux qui suivent :

Successfully set ScaleTarget replica count
Successfully updated ScaleTarget

Vous pouvez interrompre temporairement la mise à l'échelle automatique d'un objet de charge de travail, si nécessaire. Par exemple, vous pouvez interrompre la mise à l'échelle automatique avant d'effectuer la maintenance du cluster.

2.5.3. Installation de l'autoscaler de métriques personnalisé

Vous pouvez utiliser la console web d'OpenShift Container Platform pour installer l'opérateur Custom Metrics Autoscaler.

L'installation crée cinq CRD :

  • ClusterTriggerAuthentication
  • KedaController
  • ScaledJob
  • ScaledObject
  • TriggerAuthentication

Conditions préalables

  • Si vous utilisez la communauté KEDA :

    • Désinstallez la communauté KEDA. Vous ne pouvez pas exécuter à la fois KEDA et l'autoscaler de métriques personnalisé sur le même cluster OpenShift Container Platform.
    • Supprimez les définitions de ressources personnalisées de KEDA 1.x en exécutant les commandes suivantes :

      $ oc delete crd scaledobjects.keda.k8s.io
      $ oc delete crd triggerauthentications.keda.k8s.io

Procédure

  1. Dans la console Web OpenShift Container Platform, cliquez sur Operators OperatorHub.
  2. Choisissez Custom Metrics Autoscaler dans la liste des opérateurs disponibles et cliquez sur Install.
  3. Sur la page Install Operator, assurez-vous que l'option All namespaces on the cluster (default) est sélectionnée pour Installation Mode. Cela permet d'installer l'opérateur dans tous les espaces de noms.
  4. Assurez-vous que l'espace de noms openshift-keda est sélectionné pour Installed Namespace. OpenShift Container Platform crée l'espace de noms, s'il n'est pas présent dans votre cluster.
  5. Cliquez sur Install.
  6. Vérifiez l'installation en listant les composants de Custom Metrics Autoscaler Operator :

    1. Navigate to Workloads Pods.
    2. Sélectionnez le projet openshift-keda dans le menu déroulant et vérifiez que le module custom-metrics-autoscaler-operator-* est en cours d'exécution.
    3. Naviguez jusqu'à Workloads Deployments pour vérifier que le déploiement custom-metrics-autoscaler-operator est en cours.
  7. Facultatif : Vérifiez l'installation dans le CLI OpenShift à l'aide des commandes suivantes :

    $ oc get all -n openshift-keda

    Le résultat ressemble à ce qui suit :

    Exemple de sortie

    NAME                                                      READY   STATUS    RESTARTS   AGE
    pod/custom-metrics-autoscaler-operator-5fd8d9ffd8-xt4xp   1/1     Running   0          18m
    
    NAME                                                 READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/custom-metrics-autoscaler-operator   1/1     1            1           18m
    
    NAME                                                            DESIRED   CURRENT   READY   AGE
    replicaset.apps/custom-metrics-autoscaler-operator-5fd8d9ffd8   1         1         1       18m

  8. Installez la ressource personnalisée KedaController, qui crée les CRD nécessaires :

    1. Dans la console web d'OpenShift Container Platform, cliquez sur Operators Installed Operators.
    2. Cliquez sur Custom Metrics Autoscaler.
    3. Sur la page Operator Details, cliquez sur l'onglet KedaController.
    4. Dans l'onglet KedaController, cliquez sur Create KedaController et modifiez le fichier.

      kind: KedaController
      apiVersion: keda.sh/v1alpha1
      metadata:
        name: keda
        namespace: openshift-keda
      spec:
        watchNamespace: '' 1
        operator:
          logLevel: info 2
          logEncoder: console 3
        metricsServer:
          logLevel: '0' 4
          auditConfig: 5
            logFormat: "json"
            logOutputVolumeClaim: "persistentVolumeClaimName"
            policy:
              rules:
              - level: Metadata
              omitStages: "RequestReceived"
              omitManagedFields: false
            lifetime:
              maxAge: "2"
              maxBackup: "1"
              maxSize: "50"
        serviceAccount: {}
      1 1
      Spécifie les espaces de noms que l'autoscaler personnalisé doit surveiller. Saisissez les noms dans une liste séparée par des virgules. Omettre ou définir empty pour surveiller tous les espaces de noms. La valeur par défaut est empty.
      2
      Spécifie le niveau de verbosité des messages du journal de l'opérateur Autoscaler de Custom Metrics. Les valeurs autorisées sont debug, info, error. La valeur par défaut est info.
      3
      Spécifie le format de consignation des messages de consignation de l'opérateur Autoscaler de Custom Metrics. Les valeurs autorisées sont console ou json. La valeur par défaut est console.
      4
      Spécifie le niveau de journalisation pour le serveur Autoscaler Metrics de Custom Metrics. Les valeurs autorisées sont 0 pour info et 4 ou debug. La valeur par défaut est 0.
      5
      Active la journalisation des audits pour l'opérateur Custom Metrics Autoscaler et spécifie la politique d'audit à utiliser, comme décrit dans la section "Configuration de la journalisation des audits".
    5. Cliquez sur Create pour créer le contrôleur KEDAC.

2.5.4. Comprendre les déclencheurs d'autoscaler de métriques personnalisées

Les déclencheurs, également appelés scalers, fournissent les métriques que l'opérateur Custom Metrics Autoscaler utilise pour mettre à l'échelle vos pods.

Note

L'autoscaler de métriques personnalisé ne prend actuellement en charge que les déclencheurs Prometheus, CPU, memory et Apache Kafka.

Vous utilisez une ressource personnalisée ScaledObject ou ScaledJob pour configurer des déclencheurs pour des objets spécifiques, comme décrit dans les sections suivantes.

2.5.4.1. Comprendre le déclencheur Prometheus

Vous pouvez mettre à l'échelle les pods en fonction des métriques Prometheus, qui peuvent utiliser la surveillance OpenShift Container Platform installée ou un serveur Prometheus externe comme source de métriques. Voir Additional resources pour plus d'informations sur les configurations requises pour utiliser la surveillance OpenShift Container Platform comme source de métriques.

Note

Si Prometheus prend des mesures de l'application que l'autoscaler de mesures personnalisé met à l'échelle, ne définissez pas les répliques minimales à 0 dans la ressource personnalisée. S'il n'y a pas de pods d'application, l'autoscaler de métriques personnalisé n'a pas de métriques à mettre à l'échelle.

Exemple d'objet mis à l'échelle avec une cible Prometheus

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: prom-scaledobject
  namespace: my-namespace
spec:
 ...
  triggers:
  - type: prometheus 1
    metadata:
      serverAddress: https://thanos-querier.openshift-monitoring.svc.cluster.local:9092 2
      namespace: kedatest 3
      metricName: http_requests_total 4
      threshold: '5' 5
      query: sum(rate(http_requests_total{job="test-app"}[1m])) 6
      authModes: "basic" 7
      cortexOrgID: my-org 8
      ignoreNullValues: false 9
      unsafeSsl: "false" 10

1
Spécifie Prometheus comme type de mesureur/déclencheur.
2
Spécifie l'adresse du serveur Prometheus. Cet exemple utilise la surveillance de OpenShift Container Platform.
3
Facultatif : Spécifie l'espace de noms de l'objet que vous souhaitez mettre à l'échelle. Ce paramètre est obligatoire si la surveillance de OpenShift Container Platform sert de source pour les métriques.
4
Spécifie le nom permettant d'identifier la métrique dans l'API external.metrics.k8s.io. Si vous utilisez plusieurs déclencheurs, tous les noms de métriques doivent être uniques.
5
Spécifie la valeur pour laquelle la mise à l'échelle doit commencer.
6
Spécifie la requête Prometheus à utiliser.
7
Spécifie la méthode d'authentification à utiliser. Les scalers Prometheus prennent en charge l'authentification par support (bearer), l'authentification de base (basic) ou l'authentification TLS (tls). Vous configurez les paramètres d'authentification spécifiques dans un déclencheur d'authentification, comme indiqué dans la section suivante. Si nécessaire, vous pouvez également utiliser un secret.
8
Facultatif : Transmet l'en-tête X-Scope-OrgID au stockage multi-tenant Cortex ou Mimir pour Prometheus. Ce paramètre n'est requis qu'avec le stockage Prometheus multi-tenant, afin d'indiquer les données que Prometheus doit renvoyer.
9
Facultatif : Spécifie comment le déclencheur doit procéder si la cible Prometheus est perdue.
  • Si true, le déclencheur continue à fonctionner si la cible Prometheus est perdue. Il s'agit de la valeur par défaut.
  • Si false, le déclencheur renvoie une erreur si la cible Prometheus est perdue.
10
Facultatif : Indique si la vérification du certificat doit être ignorée. Par exemple, vous pouvez ignorer la vérification si vous utilisez des certificats auto-signés au niveau du point final Prometheus.
  • Si true, la vérification du certificat est effectuée.
  • Si false, la vérification du certificat n'est pas effectuée. Il s'agit de la valeur par défaut.

2.5.4.2. Comprendre le déclenchement de l'unité centrale

Vous pouvez dimensionner les pods en fonction des métriques de CPU. Ce déclencheur utilise les métriques de cluster comme source de métriques.

L'autoscaler de métriques personnalisées met à l'échelle les pods associés à un objet afin de maintenir l'utilisation du CPU que vous avez spécifiée. L'autoscaler augmente ou diminue le nombre de répliques entre les nombres minimum et maximum pour maintenir l'utilisation de l'UC spécifiée dans tous les pods. Le déclencheur de mémoire prend en compte l'utilisation de la mémoire de l'ensemble du module. Si le pod a plusieurs conteneurs, l'utilisation de la mémoire est la somme de tous les conteneurs.

Note
  • Ce déclencheur ne peut pas être utilisé avec la ressource personnalisée ScaledJob.
  • Lorsque vous utilisez un déclencheur de mémoire pour mettre un objet à l'échelle, l'objet n'est pas mis à l'échelle sur 0, même si vous utilisez plusieurs déclencheurs.

Exemple d'objet mis à l'échelle avec une cible CPU

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: cpu-scaledobject
  namespace: my-namespace
spec:

 ...

  triggers:
  - type: cpu 1
    metricType: Utilization 2
    metadata:
      value: "60" 3
      containerName: "api" 4

1
Spécifie l'unité centrale comme type d'échelle/déclencheur.
2
Spécifie le type de métrique à utiliser, soit Utilization ou AverageValue.
3
Spécifie la valeur à partir de laquelle les actions de mise à l'échelle doivent être déclenchées :
  • Lorsque l'on utilise Utilization, la valeur cible est la moyenne des mesures de la ressource pour tous les pods concernés, représentée en pourcentage de la valeur demandée de la ressource pour les pods.
  • Lorsque l'on utilise AverageValue, la valeur cible est la moyenne des mesures de tous les pods concernés.
4
Facultatif. Spécifie un conteneur individuel à mettre à l'échelle, en fonction de l'utilisation de la mémoire de ce conteneur uniquement, plutôt que de l'ensemble du pod. Ici, seul le conteneur nommé api doit être mis à l'échelle.

2.5.4.3. Comprendre le déclenchement de la mémoire

Vous pouvez mettre à l'échelle les pods en fonction des métriques de mémoire. Ce déclencheur utilise les métriques de cluster comme source de métriques.

L'autoscaler de métriques personnalisées met à l'échelle les pods associés à un objet afin de maintenir l'utilisation moyenne de la mémoire que vous avez spécifiée. L'autoscaler augmente et diminue le nombre de réplicas entre les nombres minimum et maximum pour maintenir l'utilisation de la mémoire spécifiée dans tous les pods. Le déclencheur de mémoire prend en compte l'utilisation de la mémoire de l'ensemble du module. Si le pod possède plusieurs conteneurs, l'utilisation de la mémoire est la somme de tous les conteneurs.

Note
  • Ce déclencheur ne peut pas être utilisé avec la ressource personnalisée ScaledJob.
  • Lorsque vous utilisez un déclencheur de mémoire pour mettre un objet à l'échelle, l'objet n'est pas mis à l'échelle sur 0, même si vous utilisez plusieurs déclencheurs.

Exemple d'objet mis à l'échelle avec une cible de mémoire

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: memory-scaledobject
  namespace: my-namespace
spec:

 ...

  triggers:
  - type: memory 1
    metricType: Utilization 2
    metadata:
      value: "60" 3
      containerName: "api" 4

1
Spécifie la mémoire comme type d'échelle/déclencheur.
2
Spécifie le type de métrique à utiliser, soit Utilization ou AverageValue.
3
Spécifie la valeur pour laquelle des actions de mise à l'échelle doivent être déclenchées :
  • Lorsque l'on utilise Utilization, la valeur cible est la moyenne des mesures de la ressource pour tous les pods concernés, représentée en pourcentage de la valeur demandée de la ressource pour les pods.
  • Lorsque l'on utilise AverageValue, la valeur cible est la moyenne des mesures de tous les pods concernés.
4
Facultatif. Spécifie un conteneur individuel à mettre à l'échelle, en fonction de l'utilisation de la mémoire de ce conteneur uniquement, plutôt que de l'ensemble du pod. Ici, seul le conteneur nommé api doit être mis à l'échelle.

2.5.4.4. Comprendre le déclencheur Kafka

Vous pouvez mettre à l'échelle les pods en fonction d'un sujet Apache Kafka ou d'autres services qui prennent en charge le protocole Kafka. L'autoscaler de métriques personnalisées n'augmente pas le nombre de partitions Kafka, sauf si vous définissez le paramètre allowIdleConsumers sur true dans l'objet ou le travail mis à l'échelle.

Note

Si le nombre de groupes de consommateurs dépasse le nombre de partitions d'un thème, les groupes de consommateurs supplémentaires restent inactifs.

Pour éviter cela, le nombre de répliques est limité par défaut :

  • Le nombre de partitions sur un sujet, si un sujet est spécifié.
  • Le nombre de partitions de tous les thèmes du groupe de consommateurs, si aucun thème n'est spécifié.
  • Le site maxReplicaCount spécifié dans l'objet mis à l'échelle ou le travail mis à l'échelle CR.

Vous pouvez utiliser le paramètre allowIdleConsumers pour désactiver ces comportements par défaut.

Exemple d'objet mis à l'échelle avec une cible Kafka

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: kafka-scaledobject
  namespace: my-namespace
spec:
 ...
  triggers:
  - type: kafka 1
    metadata:
      topic: my-topic 2
      bootstrapServers: my-cluster-kafka-bootstrap.openshift-operators.svc:9092 3
      consumerGroup: my-group 4
      lagThreshold: '10' 5
      activationLagThreshold 6
      offsetResetPolicy: 'latest' 7
      allowIdleConsumers: true 8
      scaleToZeroOnInvalidOffset: false 9
      excludePersistentLag: false 10
      version: 1.0.0 11
      partitionLimitation: '1,2,10-20,31' 12

1
Spécifie Kafka comme type de scaler/déclencheur.
2
Spécifie le nom du sujet Kafka sur lequel Kafka traite le décalage.
3
Spécifie une liste de brokers Kafka séparés par des virgules à laquelle se connecter.
4
Spécifie le nom du groupe de consommateurs Kafka utilisé pour vérifier le décalage sur le sujet et traiter le lag correspondant.
5
Facultatif : Spécifie la valeur cible moyenne pour déclencher les actions de mise à l'échelle. La valeur par défaut est 5.
6
Facultatif : Spécifie la valeur cible pour la phase d'activation.
7
Facultatif : Spécifie la politique de réinitialisation du décalage Kafka pour le consommateur Kafka. Les valeurs disponibles sont : latest et earliest. La valeur par défaut est latest.
8
Facultatif : Indique si le nombre de répliques Kafka peut dépasser le nombre de partitions sur un sujet.
  • Si true, le nombre de répliques Kafka peut dépasser le nombre de partitions sur un sujet. Cela permet d'avoir des consommateurs Kafka inactifs.
  • Si false, le nombre de répliques Kafka ne peut pas dépasser le nombre de partitions sur un sujet. Il s'agit de la valeur par défaut.
9
Spécifie le comportement du déclencheur lorsqu'une partition Kafka n'a pas de décalage valide.
  • Si true, les consommateurs sont ramenés à zéro pour cette partition.
  • Si false, le scaler conserve un seul consommateur pour cette partition. Il s'agit de la valeur par défaut.
10
Facultatif : Spécifie si le déclencheur inclut ou exclut le décalage de partition pour les partitions dont le décalage actuel est le même que le décalage actuel du cycle d'interrogation précédent.
  • Si true, le mesureur exclut le décalage de partition dans ces partitions.
  • Si false, le déclencheur inclut tous les décalages de consommation dans toutes les partitions. Il s'agit de la valeur par défaut.
11
Facultatif : Spécifie la version de vos brokers Kafka. La valeur par défaut est 1.0.0.
12
Facultatif : Spécifie une liste d'ID de partitions séparées par des virgules pour étendre la mise à l'échelle. Si cette option est activée, seuls les ID répertoriés sont pris en compte lors du calcul du décalage. Par défaut, toutes les partitions sont prises en compte.

2.5.5. Comprendre les métriques personnalisées Autoscaler trigger authentications

Une authentification de déclenchement vous permet d'inclure des informations d'authentification dans un objet ou un travail de mise à l'échelle qui peut être utilisé par les conteneurs associés. Vous pouvez utiliser des authentifications de déclenchement pour transmettre des secrets OpenShift Container Platform, des mécanismes d'authentification de pods natifs de la plateforme, des variables d'environnement, etc.

Vous définissez un objet TriggerAuthentication dans le même espace de noms que l'objet que vous souhaitez mettre à l'échelle. Cette authentification de déclenchement ne peut être utilisée que par les objets de cet espace de noms.

Pour partager des informations d'identification entre des objets de plusieurs espaces de noms, vous pouvez également créer un objet ClusterTriggerAuthentication qui peut être utilisé dans tous les espaces de noms.

Les authentifications par déclenchement et les authentifications par déclenchement en grappe utilisent la même configuration. Toutefois, l'authentification par déclenchement de grappe nécessite un paramètre supplémentaire kind dans la référence d'authentification de l'objet mis à l'échelle.

Exemple : déclencher l'authentification avec un secret

kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
  name: secret-triggerauthentication
  namespace: my-namespace 1
spec:
  secretTargetRef: 2
  - parameter: user-name 3
    name: my-secret 4
    key: USER_NAME 5
  - parameter: password
    name: my-secret
    key: USER_PASSWORD

1
Spécifie l'espace de noms de l'objet que vous souhaitez mettre à l'échelle.
2
Spécifie que l'authentification de ce déclencheur utilise un secret pour l'autorisation.
3
Spécifie le paramètre d'authentification à fournir en utilisant le secret.
4
Spécifie le nom du secret à utiliser.
5
Spécifie la clé du secret à utiliser avec le paramètre spécifié.

Exemple d'authentification par déclenchement de cluster avec un secret

kind: ClusterTriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata: 1
  name: secret-cluster-triggerauthentication
spec:
  secretTargetRef: 2
  - parameter: user-name 3
    name: secret-name 4
    key: USER_NAME 5
  - parameter: user-password
    name: secret-name
    key: USER_PASSWORD

1
Notez qu'aucun espace de noms n'est utilisé avec un déclencheur d'authentification en grappe.
2
Spécifie que l'authentification de ce déclencheur utilise un secret pour l'autorisation.
3
Spécifie le paramètre d'authentification à fournir en utilisant le secret.
4
Spécifie le nom du secret à utiliser.
5
Spécifie la clé du secret à utiliser avec le paramètre spécifié.

Exemple de déclenchement de l'authentification avec un jeton

kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
  name: token-triggerauthentication
  namespace: my-namespace 1
spec:
  secretTargetRef: 2
  - parameter: bearerToken 3
    name: my-token-2vzfq 4
    key: token 5
  - parameter: ca
    name: my-token-2vzfq
    key: ca.crt

1
Spécifie l'espace de noms de l'objet que vous souhaitez mettre à l'échelle.
2
Spécifie que l'authentification de ce déclencheur utilise un secret pour l'autorisation.
3
Spécifie le paramètre d'authentification à fournir en utilisant le jeton.
4
Spécifie le nom du jeton à utiliser.
5
Spécifie la clé du jeton à utiliser avec le paramètre spécifié.

Exemple de déclenchement de l'authentification à l'aide d'une variable d'environnement

kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
  name: env-var-triggerauthentication
  namespace: my-namespace 1
spec:
  env: 2
  - parameter: access_key 3
    name: ACCESS_KEY 4
    containerName: my-container 5

1
Spécifie l'espace de noms de l'objet que vous souhaitez mettre à l'échelle.
2
Spécifie que ce déclencheur d'authentification utilise des variables d'environnement pour l'autorisation.
3
Spécifiez le paramètre à définir avec cette variable.
4
Indiquez le nom de la variable d'environnement.
5
Facultatif : Indiquez un conteneur qui nécessite une authentification. Le conteneur doit se trouver dans la même ressource que celle référencée par scaleTargetRef dans l'objet mis à l'échelle.

Exemple d'authentification par déclenchement avec des fournisseurs d'authentification de pods

kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
  name: pod-id-triggerauthentication
  namespace: my-namespace 1
spec:
  podIdentity: 2
    provider: aws-eks 3

1
Spécifie l'espace de noms de l'objet que vous souhaitez mettre à l'échelle.
2
Spécifie que ce déclencheur d'authentification utilise une méthode d'authentification podale native pour l'autorisation.
3
Spécifie l'identité d'un pod. Les valeurs prises en charge sont none, azure, aws-eks ou aws-kiam. La valeur par défaut est none.

Ressources supplémentaires

2.5.5.1. Utilisation des authentifications par déclenchement

Vous utilisez les authentifications de déclenchement et les authentifications de déclenchement de cluster en utilisant une ressource personnalisée pour créer l'authentification, puis en ajoutant une référence à un objet ou à un travail mis à l'échelle.

Conditions préalables

  • L'opérateur Custom Metrics Autoscaler doit être installé.
  • Si vous utilisez un secret, l'objet Secret doit exister, par exemple :

    Exemple de secret

    apiVersion: v1
    kind: Secret
    metadata:
      name: my-secret
    data:
      user-name: <base64_USER_NAME>
      password: <base64_USER_PASSWORD>

Procédure

  1. Créer l'objet TriggerAuthentication ou ClusterTriggerAuthentication.

    1. Créer un fichier YAML qui définit l'objet :

      Exemple : déclencher l'authentification avec un secret

      kind: TriggerAuthentication
      apiVersion: keda.sh/v1alpha1
      metadata:
        name: prom-triggerauthentication
        namespace: my-namespace
      spec:
        secretTargetRef:
        - parameter: user-name
          name: my-secret
          key: USER_NAME
        - parameter: password
          name: my-secret
          key: USER_PASSWORD

    2. Créer l'objet TriggerAuthentication:

      oc create -f <nom-de-fichier>.yaml
  2. Créer ou modifier un fichier YAML ScaledObject:

    Exemple d'objet mis à l'échelle

    apiVersion: keda.sh/v1alpha1
    kind: ScaledObject
    metadata:
      name: scaledobject
      namespace: my-namespace
    spec:
      scaleTargetRef:
        name: example-deployment
      maxReplicaCount: 100
      minReplicaCount: 0
      pollingInterval: 30
      triggers:
      - authenticationRef:
        type: prometheus
        metadata:
          serverAddress: https://thanos-querier.openshift-monitoring.svc.cluster.local:9092
          namespace: kedatest # replace <NAMESPACE>
          metricName: http_requests_total
          threshold: '5'
          query: sum(rate(http_requests_total{job="test-app"}[1m]))
          authModes: "basic"
        - authenticationRef: 1
            name: prom-triggerauthentication
          metadata:
            name: prom-triggerauthentication
          type: object
        - authenticationRef: 2
            name: prom-cluster-triggerauthentication
            kind: ClusterTriggerAuthentication
          metadata:
            name: prom-cluster-triggerauthentication
          type: object

    1
    Facultatif : Spécifiez un déclencheur d'authentification.
    2
    Facultatif : Spécifiez une authentification de déclenchement de cluster. Vous devez inclure le paramètre kind: ClusterTriggerAuthentication.
    Note

    Il n'est pas nécessaire de spécifier à la fois une authentification de déclenchement de l'espace de noms et une authentification de déclenchement du cluster.

  3. Créer l'objet. Par exemple :

    $ oc apply -f <nom-de-fichier>

2.5.6. Configurer l'autoscaler de métriques personnalisé pour utiliser la surveillance de OpenShift Container Platform

Vous pouvez utiliser la surveillance Prometheus de OpenShift Container Platform installée comme source pour les métriques utilisées par l'autoscaler de métriques personnalisé. Cependant, vous devez effectuer quelques configurations supplémentaires.

Note

Ces étapes ne sont pas nécessaires pour une source Prometheus externe.

Vous devez effectuer les tâches suivantes, décrites dans cette section :

  • Créer un compte de service pour obtenir un jeton.
  • Créer un rôle.
  • Ajoutez ce rôle au compte de service.
  • Référencer le jeton dans l'objet d'authentification du déclencheur utilisé par Prometheus.

Conditions préalables

  • La surveillance de OpenShift Container Platform doit être installée.
  • La surveillance des charges de travail définies par l'utilisateur doit être activée dans la surveillance de OpenShift Container Platform, comme décrit dans la section Creating a user-defined workload monitoring config map.
  • L'opérateur Custom Metrics Autoscaler doit être installé.

Procédure

  1. Passez au projet contenant l'objet que vous souhaitez mettre à l'échelle :

    $ oc project my-project
  2. Utilisez la commande suivante pour créer un compte de service, si votre cluster n'en possède pas :

    oc create serviceaccount <service_account> $ oc create serviceaccount <service_account>

    où :

    -YRFFGUNA_compte_de_service>
    Spécifie le nom du compte de service.
  3. Utilisez la commande suivante pour localiser le jeton attribué au compte de service :

    oc describe serviceaccount <service_account> $ oc describe serviceaccount <service_account>

    où :

    -YRFFGUNA_compte_de_service>
    Spécifie le nom du compte de service.

    Exemple de sortie

    Name:                thanos
    Namespace:           my-project
    Labels:              <none>
    Annotations:         <none>
    Image pull secrets:  thanos-dockercfg-nnwgj
    Mountable secrets:   thanos-dockercfg-nnwgj
    Tokens:              thanos-token-9g4n5 1
    Events:              <none>

    1
    Utilisez ce jeton dans l'authentification du déclencheur.
  4. Créer un déclencheur d'authentification avec le jeton de compte de service :

    1. Créez un fichier YAML similaire au suivant :

      apiVersion: keda.sh/v1alpha1
      kind: TriggerAuthentication
      metadata:
        name: keda-trigger-auth-prometheus
      spec:
        secretTargetRef: 1
        - parameter: bearerToken 2
          name: thanos-token-9g4n5 3
          key: token 4
        - parameter: ca
          name: thanos-token-9g4n5
          key: ca.crt
      1
      Spécifie que cet objet utilise un secret pour l'autorisation.
      2
      Spécifie le paramètre d'authentification à fournir en utilisant le jeton.
      3
      Spécifie le nom du jeton à utiliser.
      4
      Spécifie la clé du jeton à utiliser avec le paramètre spécifié.
    2. Créer l'objet CR :

      oc create -f <nom-de-fichier>.yaml
  5. Créer un rôle pour lire les métriques de Thanos :

    1. Créez un fichier YAML avec les paramètres suivants :

      apiVersion: rbac.authorization.k8s.io/v1
      kind: Role
      metadata:
        name: thanos-metrics-reader
      rules:
      - apiGroups:
        - ""
        resources:
        - pods
        verbs:
        - get
      - apiGroups:
        - metrics.k8s.io
        resources:
        - pods
        - nodes
        verbs:
        - get
        - list
        - watch
    2. Créer l'objet CR :

      oc create -f <nom-de-fichier>.yaml
  6. Créer un lien de rôle pour la lecture des métriques de Thanos :

    1. Créez un fichier YAML similaire au suivant :

      apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:
        name: thanos-metrics-reader 1
        namespace: my-project 2
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: Role
        name: thanos-metrics-reader
      subjects:
      - kind: ServiceAccount
        name: thanos 3
        namespace: my-project 4
      1
      Spécifie le nom du rôle que vous avez créé.
      2
      Spécifie l'espace de noms de l'objet que vous souhaitez mettre à l'échelle.
      3
      Spécifie le nom du compte de service à lier au rôle.
      4
      Spécifie l'espace de noms de l'objet que vous souhaitez mettre à l'échelle.
    2. Créer l'objet CR :

      oc create -f <nom-de-fichier>.yaml

Vous pouvez maintenant déployer un objet ou un travail mis à l'échelle pour activer la mise à l'échelle automatique de votre application, comme décrit dans les sections suivantes. Pour utiliser la surveillance d'OpenShift Container Platform comme source, dans le déclencheur ou le scaler, spécifiez le type prometheus et utilisez https://thanos-querier.openshift-monitoring.svc.cluster.local:9092 comme serverAddress.

Ressources supplémentaires

2.5.7. Mise en pause de l'autoscaler de métriques personnalisées pour une charge de travail

Vous pouvez interrompre la mise à l'échelle automatique d'une charge de travail, si nécessaire, en ajoutant l'annotation autoscaling.keda.sh/paused-replicas à l'autoscaler de métriques personnalisé pour cette charge de travail. L'autoscaler de métriques personnalisées met à l'échelle les réplicas pour cette charge de travail jusqu'à la valeur spécifiée et interrompt l'autoscaling jusqu'à ce que l'annotation soit supprimée.

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  annotations:
    autoscaling.keda.sh/paused-replicas: "4"
...

Pour redémarrer l'autoscaling, modifiez le CR ScaledObject pour supprimer l'annotation.

Par exemple, vous pouvez vouloir mettre en pause l'autoscaling avant d'effectuer la maintenance du cluster ou pour éviter la pénurie de ressources en supprimant les charges de travail non critiques.

Procédure

  1. Utilisez la commande suivante pour éditer le ScaledObject CR pour votre charge de travail :

    $ oc edit ScaledObject scaledobject
  2. Ajouter l'annotation autoscaling.keda.sh/paused-replicas avec n'importe quelle valeur :

    apiVersion: keda.sh/v1alpha1
    kind: ScaledObject
    metadata:
      annotations:
        autoscaling.keda.sh/paused-replicas: "4" 1
      creationTimestamp: "2023-02-08T14:41:01Z"
      generation: 1
      name: scaledobject
      namespace: my-project
      resourceVersion: "65729"
      uid: f5aec682-acdf-4232-a783-58b5b82f5dd0
    1
    Spécifie que l'opérateur de mise à l'échelle automatique des métriques personnalisées doit mettre à l'échelle les répliques jusqu'à la valeur spécifiée et arrêter la mise à l'échelle automatique.

2.5.8. Configuration de la journalisation des audits

Vous pouvez rassembler des journaux d'audit, qui sont un ensemble chronologique d'enregistrements relatifs à la sécurité documentant la séquence des activités qui ont affecté le système par des utilisateurs individuels, des administrateurs ou d'autres composants du système.

Par exemple, les journaux d'audit peuvent vous aider à comprendre d'où provient une demande d'autoscaling. Il s'agit d'une information clé lorsque les backends sont surchargés par des requêtes d'autoscaling effectuées par des applications utilisateur et que vous devez déterminer quelle est l'application qui pose problème. Vous pouvez configurer l'audit pour le Custom Metrics Autoscaler Operator en modifiant la ressource personnalisée KedaController. Les journaux sont envoyés à un fichier journal d'audit sur un volume sécurisé à l'aide d'une revendication de volume persistant dans le CR KedaController.

Conditions préalables

  • L'opérateur Custom Metrics Autoscaler doit être installé.

Procédure

  1. Modifiez la ressource personnalisée KedaController pour ajouter la strophe auditConfig:

    kind: KedaController
    apiVersion: keda.sh/v1alpha1
    metadata:
      name: keda
      namespace: openshift-keda
    spec:
     ...
      metricsServer:
     ...
        auditConfig:
          logFormat: "json" 1
          logOutputVolumeClaim: "pvc-audit-log" 2
          policy:
            rules: 3
            - level: Metadata
            omitStages: "RequestReceived" 4
            omitManagedFields: false 5
          lifetime: 6
            maxAge: "2"
            maxBackup: "1"
            maxSize: "50"
    1
    Spécifie le format de sortie du journal d'audit, soit legacy ou json.
    2
    Spécifie une revendication de volume persistant existante pour le stockage des données de journalisation. Toutes les demandes adressées au serveur API sont consignées dans cette revendication de volume persistant. Si vous laissez ce champ vide, les données du journal sont envoyées à stdout.
    3
    Spécifie quels événements doivent être enregistrés et quelles données doivent être incluses :
    • None: Ne pas enregistrer les événements.
    • Metadata: N'enregistrez que les métadonnées de la demande, telles que l'utilisateur, l'horodatage, etc. Ne pas enregistrer le texte de la demande et le texte de la réponse. Il s'agit de la valeur par défaut.
    • Request: Enregistrer uniquement les métadonnées et le texte de la demande, mais pas le texte de la réponse. Cette option ne s'applique pas aux demandes ne portant pas sur des ressources.
    • RequestResponse: Métadonnées de l'événement, texte de la demande et texte de la réponse. Cette option ne s'applique pas aux demandes ne portant pas sur des ressources.
    4
    Spécifie les étapes pour lesquelles aucun événement n'est créé.
    5
    Indique s'il faut omettre les champs gérés des corps de demande et de réponse dans le journal d'audit de l'API, soit true pour omettre les champs, soit false pour les inclure.
    6
    Spécifie la taille et la durée de vie des journaux d'audit.
    • maxAge: Nombre maximal de jours pendant lesquels les fichiers journaux d'audit doivent être conservés, sur la base de l'horodatage encodé dans leur nom de fichier.
    • maxBackup: Nombre maximal de fichiers journaux d'audit à conserver. La valeur 0 permet de conserver tous les fichiers journaux d'audit.
    • maxSize: Taille maximale en mégaoctets d'un fichier journal d'audit avant qu'il ne fasse l'objet d'une rotation.

Vérification

  1. Consulter directement le fichier journal de l'audit :

    1. Obtenir le nom du pod keda-metrics-apiserver-*:

      oc get pod -n openshift-keda

      Exemple de sortie

      NAME                                                  READY   STATUS    RESTARTS   AGE
      custom-metrics-autoscaler-operator-5cb44cd75d-9v4lv   1/1     Running   0          8m20s
      keda-metrics-apiserver-65c7cc44fd-rrl4r               1/1     Running   0          2m55s
      keda-operator-776cbb6768-zpj5b                        1/1     Running   0          2m55s

    2. Affichez les données du journal à l'aide d'une commande similaire à la suivante :

      oc logs keda-metrics-apiserver-<hash>|grep -i metadata 1
      1
      Facultatif : vous pouvez utiliser la commande grep pour spécifier le niveau de journal à afficher : Metadata, Request, RequestResponse.

      Par exemple :

      $ oc logs keda-metrics-apiserver-65c7cc44fd-rrl4r|grep -i metadata

      Exemple de sortie

       ...
      {"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Metadata","auditID":"4c81d41b-3dab-4675-90ce-20b87ce24013","stage":"ResponseComplete","requestURI":"/healthz","verb":"get","user":{"username":"system:anonymous","groups":["system:unauthenticated"]},"sourceIPs":["10.131.0.1"],"userAgent":"kube-probe/1.26","responseStatus":{"metadata":{},"code":200},"requestReceivedTimestamp":"2023-02-16T13:00:03.554567Z","stageTimestamp":"2023-02-16T13:00:03.555032Z","annotations":{"authorization.k8s.io/decision":"allow","authorization.k8s.io/reason":""}}
       ...

  2. Vous pouvez également consulter un journal spécifique :

    1. Utilisez une commande similaire à la suivante pour vous connecter au pod keda-metrics-apiserver-*:

      oc rsh pod/keda-metrics-apiserver-<hash> -n openshift-keda

      Par exemple :

      $ oc rsh pod/keda-metrics-apiserver-65c7cc44fd-rrl4r -n openshift-keda
    2. Allez dans le répertoire /var/audit-policy/:

      sh-4.4$ cd /var/audit-policy/
    3. Liste des journaux disponibles :

      sh-4.4$ ls

      Exemple de sortie

      log-2023.02.17-14:50  policy.yaml

    4. Consulter le journal, si nécessaire :

      sh-4.4$ cat <log_name>/<pvc_name>|grep -i <log_level> 1
      1
      Facultatif : vous pouvez utiliser la commande grep pour spécifier le niveau de journal à afficher : Metadata, Request, RequestResponse.

      Par exemple :

      sh-4.4$ cat log-2023.02.17-14:50/pvc-audit-log|grep -i Request

      Exemple de sortie

       ...
      {"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Request","auditID":"63e7f68c-04ec-4f4d-8749-bf1656572a41","stage":"ResponseComplete","requestURI":"/openapi/v2","verb":"get","user":{"username":"system:aggregator","groups":["system:authenticated"]},"sourceIPs":["10.128.0.1"],"responseStatus":{"metadata":{},"code":304},"requestReceivedTimestamp":"2023-02-17T13:12:55.035478Z","stageTimestamp":"2023-02-17T13:12:55.038346Z","annotations":{"authorization.k8s.io/decision":"allow","authorization.k8s.io/reason":"RBAC: allowed by ClusterRoleBinding \"system:discovery\" of ClusterRole \"system:discovery\" to Group \"system:authenticated\""}}
       ...

2.5.9. Collecte de données de débogage

Lorsque vous ouvrez un dossier d'assistance, il est utile de fournir des informations de débogage sur votre cluster à l'équipe d'assistance de Red Hat.

Il est recommandé de fournir les informations suivantes :

  • Données recueillies à l'aide de l'outil must-gather.
  • L'identifiant unique du cluster.

Vous pouvez utiliser l'outil must-gather pour collecter des données sur l'opérateur Custom Metrics Autoscaler et ses composants, notamment

  • L'espace de noms openshift-keda et ses objets enfants.
  • Les objets d'installation Custom Metric Autoscaler Operator.
  • Les objets Custom Metric Autoscaler Operator CRD.

La commande suivante exécute l'outil must-gather pour l'opérateur Custom Metrics Autoscaler :

$ oc adm must-gather --image="$(oc get packagemanifests openshift-custom-metrics-autoscaler-operator \
-n openshift-marketplace \
-o jsonpath='{.status.channels[?(@.name=="stable")].currentCSVDesc.annotations.containerImage}')"
Note

La commande standard d'OpenShift Container Platform must-gather, oc adm must-gather, ne collecte pas les données Custom Metrics Autoscaler Operator.

Conditions préalables

  • Accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin.
  • L'OpenShift Container Platform CLI (oc) est installé.

Procédure

  1. Accédez au répertoire dans lequel vous souhaitez stocker les données must-gather.

    Note

    Si votre cluster utilise un réseau restreint, vous devez prendre des mesures supplémentaires. Si votre registre miroir dispose d'une autorité de certification approuvée, vous devez d'abord ajouter cette dernière au cluster. Pour tous les clusters sur des réseaux restreints, vous devez importer l'image par défaut must-gather en tant que flux d'images en exécutant la commande suivante.

    $ oc import-image is/must-gather -n openshift
  2. Effectuez l'une des opérations suivantes :

    • Pour obtenir uniquement les données Custom Metrics Autoscaler Operator must-gather, utilisez la commande suivante :

      $ oc adm must-gather --image="$(oc get packagemanifests openshift-custom-metrics-autoscaler-operator \
      -n openshift-marketplace \
      -o jsonpath='{.status.channels[?(@.name=="stable")].currentCSVDesc.annotations.containerImage}')"

      L'image personnalisée de la commande must-gather est tirée directement des manifestes du paquet Operator, de sorte qu'elle fonctionne sur n'importe quel cluster où l'opérateur Custom Metric Autoscaler est disponible.

    • Pour collecter les données par défaut must-gather en plus des informations de l'opérateur Autoscaler de métriques personnalisées :

      1. Utilisez la commande suivante pour obtenir l'image Custom Metrics Autoscaler Operator et la définir comme variable d'environnement :

        $ IMAGE="$(oc get packagemanifests openshift-custom-metrics-autoscaler-operator \
          -n openshift-marketplace \
          -o jsonpath='{.status.channels[?(@.name=="stable")].currentCSVDesc.annotations.containerImage}')"
      2. Utilisez le site oc adm must-gather avec l'image Custom Metrics Autoscaler Operator :

        $ oc adm must-gather --image-stream=openshift/must-gather --image=${IMAGE}

    Exemple 2.1. Exemple de sortie de collecte obligatoire pour le Custom Metric Autoscaler :

    └── openshift-keda
        ├── apps
        │   ├── daemonsets.yaml
        │   ├── deployments.yaml
        │   ├── replicasets.yaml
        │   └── statefulsets.yaml
        ├── apps.openshift.io
        │   └── deploymentconfigs.yaml
        ├── autoscaling
        │   └── horizontalpodautoscalers.yaml
        ├── batch
        │   ├── cronjobs.yaml
        │   └── jobs.yaml
        ├── build.openshift.io
        │   ├── buildconfigs.yaml
        │   └── builds.yaml
        ├── core
        │   ├── configmaps.yaml
        │   ├── endpoints.yaml
        │   ├── events.yaml
        │   ├── persistentvolumeclaims.yaml
        │   ├── pods.yaml
        │   ├── replicationcontrollers.yaml
        │   ├── secrets.yaml
        │   └── services.yaml
        ├── discovery.k8s.io
        │   └── endpointslices.yaml
        ├── image.openshift.io
        │   └── imagestreams.yaml
        ├── k8s.ovn.org
        │   ├── egressfirewalls.yaml
        │   └── egressqoses.yaml
        ├── keda.sh
        │   ├── kedacontrollers
        │   │   └── keda.yaml
        │   ├── scaledobjects
        │   │   └── example-scaledobject.yaml
        │   └── triggerauthentications
        │       └── example-triggerauthentication.yaml
        ├── monitoring.coreos.com
        │   └── servicemonitors.yaml
        ├── networking.k8s.io
        │   └── networkpolicies.yaml
        ├── openshift-keda.yaml
        ├── pods
        │   ├── custom-metrics-autoscaler-operator-58bd9f458-ptgwx
        │   │   ├── custom-metrics-autoscaler-operator
        │   │   │   └── custom-metrics-autoscaler-operator
        │   │   │       └── logs
        │   │   │           ├── current.log
        │   │   │           ├── previous.insecure.log
        │   │   │           └── previous.log
        │   │   └── custom-metrics-autoscaler-operator-58bd9f458-ptgwx.yaml
        │   ├── custom-metrics-autoscaler-operator-58bd9f458-thbsh
        │   │   └── custom-metrics-autoscaler-operator
        │   │       └── custom-metrics-autoscaler-operator
        │   │           └── logs
        │   ├── keda-metrics-apiserver-65c7cc44fd-6wq4g
        │   │   ├── keda-metrics-apiserver
        │   │   │   └── keda-metrics-apiserver
        │   │   │       └── logs
        │   │   │           ├── current.log
        │   │   │           ├── previous.insecure.log
        │   │   │           └── previous.log
        │   │   └── keda-metrics-apiserver-65c7cc44fd-6wq4g.yaml
        │   └── keda-operator-776cbb6768-fb6m5
        │       ├── keda-operator
        │       │   └── keda-operator
        │       │       └── logs
        │       │           ├── current.log
        │       │           ├── previous.insecure.log
        │       │           └── previous.log
        │       └── keda-operator-776cbb6768-fb6m5.yaml
        ├── policy
        │   └── poddisruptionbudgets.yaml
        └── route.openshift.io
            └── routes.yaml
  3. Créez un fichier compressé à partir du répertoire must-gather qui a été créé dans votre répertoire de travail. Par exemple, sur un ordinateur utilisant un système d'exploitation Linux, exécutez la commande suivante :

    $ tar cvaf must-gather.tar.gz must-gather.local.5421342344627712289/ 1
    1
    Remplacez must-gather-local.5421342344627712289/ par le nom du répertoire.
  4. Joignez le fichier compressé à votre demande d'assistance sur le portail client de Red Hat.

2.5.10. Accès aux métriques de performance

L'opérateur Autoscaler Custom Metrics expose des mesures prêtes à l'emploi qu'il extrait du composant de surveillance du cluster. Vous pouvez interroger les mesures à l'aide du Prometheus Query Language (PromQL) pour analyser et diagnostiquer les problèmes. Toutes les mesures sont réinitialisées lorsque le pod contrôleur redémarre.

Vous pouvez accéder aux métriques et exécuter des requêtes en utilisant la console web d'OpenShift Container Platform.

Procédure

  1. Sélectionnez la perspective Administrator dans la console web de OpenShift Container Platform.
  2. Sélectionnez Observe Metrics.
  3. Pour créer une requête personnalisée, ajoutez votre requête PromQL au champ Expression.
  4. Pour ajouter plusieurs requêtes, sélectionnez Add Query.

2.5.10.1. Métriques fournies

Le Custom Metrics Autoscaler Operator expose les métriques suivantes, que vous pouvez visualiser en utilisant la console web d'OpenShift Container Platform.

Tableau 2.2. Métriques personnalisées de l'opérateur Autoscaler
Nom de la métriqueDescription

keda_scaler_activity

Indique si l'analyseur est actif ou inactif. Une valeur de 1 indique que le mesureur est actif ; une valeur de 0 indique que le mesureur est inactif.

keda_scaler_metrics_value

Valeur actuelle de la métrique de chaque scaler, utilisée par l'Horizontal Pod Autoscaler (HPA) dans le calcul de la moyenne cible.

keda_scaler_metrics_latency

Le temps de latence pour récupérer la métrique actuelle de chaque mesureur.

keda_scaler_errors

Le nombre d'erreurs qui se sont produites pour chaque mesureur.

keda_scaler_errors_total

Le nombre total d'erreurs rencontrées pour tous les scalers.

keda_scaled_object_errors

Le nombre d'erreurs qui se sont produites pour chaque objet mis à l'échelle.

keda_resource_totals

Nombre total de ressources personnalisées Custom Metrics Autoscaler dans chaque espace de noms pour chaque type de ressource personnalisée.

keda_trigger_totals

Le nombre total de déclencheurs par type de déclencheur.

Métriques personnalisées Métriques Autoscaler Admission webhook

Le webhook Custom Metrics Autoscaler Admission expose également les métriques Prometheus suivantes.

Nom de la métriqueDescription

keda_scaled_object_validation_total

Le nombre de validations d'objets mis à l'échelle.

keda_scaled_object_validation_errors

Le nombre d'erreurs de validation.

2.5.11. Comprendre comment ajouter des autoscalers de métriques personnalisés

Pour ajouter un autoscaler de métriques personnalisé, créez une ressource personnalisée ScaledObject pour un déploiement, un ensemble avec état ou une ressource personnalisée. Créez une ressource personnalisée ScaledJob pour un travail.

Vous ne pouvez créer qu'un seul objet ou travail mis à l'échelle pour chaque charge de travail que vous souhaitez mettre à l'échelle. Vous ne pouvez pas non plus utiliser un objet ou un travail mis à l'échelle et le pod autoscaler horizontal (HPA) sur la même charge de travail.

2.5.11.1. Ajout d'un autoscaler de métriques personnalisé à une charge de travail

Vous pouvez créer un autoscaler de métriques personnalisé pour une charge de travail créée par un objet Deployment, StatefulSet ou custom resource.

Conditions préalables

  • L'opérateur Custom Metrics Autoscaler doit être installé.
  • Si vous utilisez un autoscaler de métriques personnalisé pour une mise à l'échelle basée sur le CPU ou la mémoire :

    • L'administrateur de votre cluster doit avoir correctement configuré les métriques du cluster. Vous pouvez utiliser la commande oc describe PodMetrics <pod-name> pour déterminer si les métriques sont configurées. Si les métriques sont configurées, la sortie est similaire à ce qui suit, avec le CPU et la mémoire affichés sous Usage.

      $ oc describe PodMetrics openshift-kube-scheduler-ip-10-0-135-131.ec2.internal

      Exemple de sortie

      Name:         openshift-kube-scheduler-ip-10-0-135-131.ec2.internal
      Namespace:    openshift-kube-scheduler
      Labels:       <none>
      Annotations:  <none>
      API Version:  metrics.k8s.io/v1beta1
      Containers:
        Name:  wait-for-host-port
        Usage:
          Memory:  0
        Name:      scheduler
        Usage:
          Cpu:     8m
          Memory:  45440Ki
      Kind:        PodMetrics
      Metadata:
        Creation Timestamp:  2019-05-23T18:47:56Z
        Self Link:           /apis/metrics.k8s.io/v1beta1/namespaces/openshift-kube-scheduler/pods/openshift-kube-scheduler-ip-10-0-135-131.ec2.internal
      Timestamp:             2019-05-23T18:47:56Z
      Window:                1m0s
      Events:                <none>

    • Les pods associés à l'objet que vous souhaitez mettre à l'échelle doivent inclure les limites de mémoire et de CPU spécifiées. Par exemple :

      Exemple de spécification de pod

      apiVersion: v1
      kind: Pod
       ...
      spec:
        containers:
        - name: app
          image: images.my-company.example/app:v4
          resources:
            limits:
              memory: "128Mi"
              cpu: "500m"

Procédure

  1. Créez un fichier YAML similaire au suivant. Seuls le nom <2>, le nom de l'objet <4> et le type d'objet <5> sont nécessaires :

    Exemple d'objet mis à l'échelle

    apiVersion: keda.sh/v1alpha1
    kind: ScaledObject
    metadata:
      annotations:
        autoscaling.keda.sh/paused-replicas: "0" 1
      name: scaledobject 2
      namespace: my-namespace
    spec:
      scaleTargetRef:
        apiVersion: apps/v1 3
        name: example-deployment 4
        kind: Deployment 5
        envSourceContainerName: .spec.template.spec.containers[0] 6
      cooldownPeriod:  200 7
      maxReplicaCount: 100 8
      minReplicaCount: 0 9
      metricsServer: 10
        auditConfig:
          logFormat: "json"
          logOutputVolumeClaim: "persistentVolumeClaimName"
          policy:
            rules:
            - level: Metadata
            omitStages: "RequestReceived"
            omitManagedFields: false
          lifetime:
            maxAge: "2"
            maxBackup: "1"
            maxSize: "50"
      fallback: 11
        failureThreshold: 3
        replicas: 6
      pollingInterval: 30 12
      advanced:
        restoreToOriginalReplicaCount: false 13
        horizontalPodAutoscalerConfig:
          name: keda-hpa-scale-down 14
          behavior: 15
            scaleDown:
              stabilizationWindowSeconds: 300
              policies:
              - type: Percent
                value: 100
                periodSeconds: 15
      triggers:
      - type: prometheus 16
        metadata:
          serverAddress: https://thanos-querier.openshift-monitoring.svc.cluster.local:9092
          namespace: kedatest
          metricName: http_requests_total
          threshold: '5'
          query: sum(rate(http_requests_total{job="test-app"}[1m]))
          authModes: "basic"
      - authenticationRef: 17
          name: prom-triggerauthentication
        metadata:
          name: prom-triggerauthentication
        type: object
      - authenticationRef: 18
          name: prom-cluster-triggerauthentication
        metadata:
          name: prom-cluster-triggerauthentication
        type: object

    1
    Facultatif : Spécifie que l'opérateur Custom Metrics Autoscaler doit mettre à l'échelle les répliques jusqu'à la valeur spécifiée et arrêter la mise à l'échelle automatique, comme décrit dans la section "Mise en pause du Custom Metrics Autoscaler pour une charge de travail".
    2
    Spécifie un nom pour cet autoscaler de métriques personnalisé.
    3
    Facultatif : Spécifie la version API de la ressource cible. La valeur par défaut est apps/v1.
    4
    Spécifie le nom de l'objet que vous souhaitez mettre à l'échelle.
    5
    Spécifie que le site kind est Deployment, StatefulSet ou CustomResource.
    6
    Facultatif : Spécifie le nom du conteneur dans la ressource cible, à partir duquel l'autoscaler de métriques personnalisées obtient les variables d'environnement contenant les secrets, etc. La valeur par défaut est .spec.template.spec.containers[0].
    7
    Facultatif. Spécifie la période en secondes à attendre après le signalement du dernier déclencheur avant de ramener le déploiement à 0 si minReplicaCount est défini 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 réduction d'échelle.
    10
    Facultatif : Spécifie les paramètres des journaux d'audit, comme décrit dans la section "Configuration de la journalisation des audits".
    11
    Facultatif : Spécifie le nombre de répliques à utiliser si un scaler ne parvient pas à obtenir les métriques de la source pendant le nombre de fois défini par le paramètre failureThreshold. Pour plus d'informations sur le comportement de repli, voir la documentation KEDA.
    12
    Facultatif : Spécifie l'intervalle en secondes pour vérifier chaque déclencheur. La valeur par défaut est 30.
    13
    Facultatif : Indique s'il faut ramener la ressource cible au nombre de répliques d'origine après la suppression de l'objet mis à l'échelle. La valeur par défaut est false, qui conserve 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 de mise à l'échelle des pods à la hausse ou à la baisse, comme décrit dans la section "Politiques de mise à l'échelle".
    16
    Spécifie le déclencheur à utiliser comme base pour la mise à l'échelle, comme décrit dans la section "Understanding the custom metrics autoscaler triggers" (Comprendre les déclencheurs d'autoscaler de métriques personnalisées). Cet exemple utilise la surveillance de OpenShift Container Platform.
    17
    Facultatif : Spécifie une authentification de déclenchement, comme décrit dans la section "Création d'une authentification de déclenchement autoscaler de métriques personnalisée".
    18
    Facultatif : Spécifie une authentification de déclenchement de cluster, comme décrit dans la section "Création d'une authentification de déclenchement autoscaler de métriques personnalisée".
    Note

    Il n'est pas nécessaire de spécifier à la fois une authentification de déclenchement de l'espace de noms et une authentification de déclenchement du cluster.

  2. Créez l'autoscaler de métriques personnalisé :

    oc create -f <nom-de-fichier>.yaml

Vérification

  • Affichez la sortie de la commande pour vérifier que l'autoscaler de métriques personnalisé a été créé :

    oc get scaledobject <scaled_object_name>

    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

    Notez les champs suivants dans le résultat :

  • TRIGGERS: Indique le déclencheur, ou l'échelle, utilisé.
  • AUTHENTICATION: Indique le nom de l'authentification de déclenchement utilisée.
  • READY: Indique si l'objet mis à l'échelle est prêt à commencer la mise à l'échelle :

    • Si True, l'objet mis à l'échelle est prêt.
    • Si False, 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 est en cours :

    • Si True, il y a mise à l'échelle.
    • Si False, la mise à l'échelle n'a pas lieu 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.
  • FALLBACK: Indique si l'autoscaler de métriques personnalisé est capable d'obtenir des métriques de la source

    • Si False, l'autoscaler de métriques personnalisées reçoit des métriques.
    • Si True, l'autoscaler de métriques personnalisées reçoit des métriques parce qu'il n'y en a pas ou qu'il y a un problème dans un ou plusieurs des objets que vous avez créés.

2.5.11.2. Ajout d'un autoscaler de métriques personnalisé à une tâche

Vous pouvez créer un autoscaler de métriques personnalisé pour n'importe quel objet Job.

Conditions préalables

  • L'opérateur Custom Metrics Autoscaler doit être installé.

Procédure

  1. Créez un fichier YAML similaire au suivant :

    kind: ScaledJob
    apiVersion: keda.sh/v1alpha1
    metadata:
      name: scaledjob
      namespace: my-namespace
    spec:
      failedJobsHistoryLimit: 5
      jobTargetRef:
        activeDeadlineSeconds: 600 1
        backoffLimit: 6 2
        parallelism: 1 3
        completions: 1 4
        template:  5
          metadata:
            name: pi
          spec:
            containers:
            - name: pi
              image: perl
              command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      maxReplicaCount: 100 6
      pollingInterval: 30 7
      successfulJobsHistoryLimit: 5 8
      failedJobsHistoryLimit: 5 9
      envSourceContainerName: 10
      rolloutStrategy: gradual 11
      scalingStrategy: 12
        strategy: "custom"
        customScalingQueueLengthDeduction: 1
        customScalingRunningJobPercentage: "0.5"
        pendingPodConditions:
          - "Ready"
          - "PodScheduled"
          - "AnyOtherCustomPodCondition"
        multipleScalersCalculation : "max"
      triggers:
      - type: prometheus 13
        metadata:
          serverAddress: https://thanos-querier.openshift-monitoring.svc.cluster.local:9092
          namespace: kedatest
          metricName: http_requests_total
          threshold: '5'
          query: sum(rate(http_requests_total{job="test-app"}[1m]))
          authModes: "bearer"
      - authenticationRef: 14
          name: prom-triggerauthentication
        metadata:
          name: prom-triggerauthentication
         type: object
      - authenticationRef: 15
          name: prom-cluster-triggerauthentication
        metadata:
          name: prom-cluster-triggerauthentication
        type: object
    1
    Spécifie la durée maximale d'exécution du travail.
    2
    Spécifie le nombre de tentatives pour un travail. La valeur par défaut est 6.
    3
    Facultatif : Spécifie le nombre de répliques de pods qu'un travail doit exécuter en parallèle ; la valeur par défaut est 1.
    • Pour les travaux non parallèles, laissez le paramètre non défini. Si elle n'est pas définie, la valeur par défaut est 1.
    4
    Facultatif : Indique le nombre de pods terminés avec succès pour qu'un travail soit considéré comme terminé.
    • Pour les travaux non parallèles, laissez le paramètre non défini. Si elle n'est pas définie, la valeur par défaut est 1.
    • Pour les travaux parallèles avec un nombre d'achèvements fixe, indiquez le nombre d'achèvements.
    • Pour les travaux parallèles avec une file d'attente, laissez le paramètre non défini. Lorsqu'il n'est pas défini, la valeur par défaut est celle du paramètre parallelism.
    5
    Spécifie le modèle du module créé par le contrôleur.
    6
    Facultatif : Spécifie le nombre maximum de répliques lors de la mise à l'échelle. La valeur par défaut est 100.
    7
    Facultatif : Spécifie l'intervalle en secondes pour vérifier chaque déclencheur. La valeur par défaut est 30.
    8
    Facultatif : Spécifie le nombre de travaux terminés avec succès qui doivent être conservés. La valeur par défaut est 100.
    9
    Facultatif : Spécifie le nombre de travaux ayant échoué qui doivent être conservés. La valeur par défaut est 100.
    10
    Facultatif : Spécifie le nom du conteneur dans la ressource cible, à partir duquel l'autoscaler personnalisé obtient les variables d'environnement contenant les secrets, etc. La valeur par défaut est .spec.template.spec.containers[0].
    11
    Facultatif : Indique si les travaux existants sont interrompus lorsqu'un travail mis à l'échelle est mis à jour :
    • default: L'autoscaler met fin à un travail existant si le travail de mise à l'échelle qui lui est associé est mis à jour. L'autoscaler recrée le travail avec les dernières spécifications.
    • gradual: L'autoscaler ne met pas fin à un travail existant si le travail de mise à l'échelle qui lui est associé est mis à jour. L'autoscaler crée de nouveaux travaux avec les dernières spécifications.
    12
    Facultatif : Spécifie une stratégie de mise à l'échelle : default custom ou accurate. La valeur par défaut est default. Pour plus d'informations, voir le lien dans la section "Ressources supplémentaires" qui suit.
    13
    Spécifie le déclencheur à utiliser comme base pour la mise à l'échelle, comme décrit dans la section "Understanding the custom metrics autoscaler triggers" (Comprendre les déclencheurs d'autoscaler de mesures personnalisées).
    14
    Facultatif : Spécifie une authentification de déclenchement, comme décrit dans la section "Création d'une authentification de déclenchement autoscaler de métriques personnalisée".
    15
    Facultatif : Spécifie une authentification de déclenchement de cluster, comme décrit dans la section "Création d'une authentification de déclenchement autoscaler de métriques personnalisée".
    Note

    Il n'est pas nécessaire de spécifier à la fois une authentification de déclenchement de l'espace de noms et une authentification de déclenchement du cluster.

  2. Créez l'autoscaler de métriques personnalisé :

    oc create -f <nom-de-fichier>.yaml

Vérification

  • Affichez la sortie de la commande pour vérifier que l'autoscaler de métriques personnalisé a été créé :

    oc get scaledjob <scaled_job_name>

    Exemple de sortie

    NAME        MAX   TRIGGERS     AUTHENTICATION              READY   ACTIVE    AGE
    scaledjob   100   prometheus   prom-triggerauthentication  True    True      8s

    Notez les champs suivants dans le résultat :

  • TRIGGERS: Indique le déclencheur, ou l'échelle, utilisé.
  • AUTHENTICATION: Indique le nom de l'authentification de déclenchement utilisée.
  • READY: Indique si l'objet mis à l'échelle est prêt à commencer la mise à l'échelle :

    • Si True, l'objet mis à l'échelle est prêt.
    • Si False, 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 est en cours :

    • Si True, il y a mise à l'échelle.
    • Si False, la mise à l'échelle n'a pas lieu 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.

2.5.12. Désinstallation de l'opérateur Autoscaler de mesures personnalisées

Vous pouvez supprimer le Custom Metrics Autoscaler de votre cluster OpenShift Container Platform. Après avoir supprimé l'opérateur Custom Metrics Autoscaler, supprimez les autres composants associés à l'opérateur afin d'éviter tout problème potentiel.

Note

Vous devez d'abord supprimer la ressource personnalisée (CR) KedaController. Si vous ne supprimez pas spécifiquement la CR, OpenShift Container Platform peut se bloquer lorsque vous supprimez le projet openshift-keda. Si vous supprimez le Custom Metrics Autoscaler Operator avant de supprimer la CR, vous ne pourrez pas supprimer la CR.

Conditions préalables

  • L'opérateur Custom Metrics Autoscaler doit être installé.

Procédure

  1. Dans la console web d'OpenShift Container Platform, cliquez sur Operators Installed Operators.
  2. Passez au projet openshift-keda.
  3. Supprimer la ressource personnalisée KedaController.

    1. Trouvez l'opérateur CustomMetricsAutoscaler et cliquez sur l'onglet KedaController.
    2. Recherchez la ressource personnalisée, puis cliquez sur Delete KedaController.
    3. Cliquez sur Uninstall.
  4. Supprimez l'opérateur Autoscaler de métriques personnalisées :

    1. Cliquez sur Operators Installed Operators.
    2. Trouvez l'opérateur CustomMetricsAutoscaler et cliquez sur le menu Options kebab et sélectionnez Uninstall Operator.
    3. Cliquez sur Uninstall.
  5. Optionnel : Utilisez le CLI OpenShift pour supprimer les composants autoscaler des métriques personnalisées :

    1. Supprimez les CRD de métriques personnalisées autoscaler :

      • clustertriggerauthentications.keda.sh
      • kedacontrollers.keda.sh
      • scaledjobs.keda.sh
      • scaledobjects.keda.sh
      • triggerauthentications.keda.sh
      $ oc delete crd clustertriggerauthentications.keda.sh kedacontrollers.keda.sh scaledjobs.keda.sh scaledobjects.keda.sh triggerauthentications.keda.sh

      La suppression des CRD supprime les rôles associés, les rôles de cluster et les liaisons de rôles. Toutefois, il se peut que quelques rôles de cluster doivent être supprimés manuellement.

    2. Liste des rôles de cluster autoscaler de métriques personnalisées :

      $ oc get clusterrole | grep keda.sh
    3. Supprimez les rôles de cluster autoscaler de métriques personnalisées répertoriés. Par exemple :

      $ oc delete clusterrole.keda.sh-v1alpha1-admin
    4. Liste de toutes les liaisons de rôles de cluster autoscaler de métriques personnalisées :

      $ oc get clusterrolebinding | grep keda.sh
    5. Supprimez les liaisons de rôles de cluster autoscaler de métriques personnalisées répertoriées. Par exemple :

      $ oc delete clusterrolebinding.keda.sh-v1alpha1-admin
  6. Supprimez le projet custom metrics autoscaler :

    $ oc delete project openshift-keda
  7. Supprimez l'opérateur Autoscaler de métrique de cluster :

    $ oc delete operator/openshift-custom-metrics-autoscaler-operator.openshift-keda
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.