5.2. Évaluation de votre cluster pour les API supprimées


Il existe plusieurs méthodes pour aider les administrateurs à identifier où les API qui seront supprimées sont utilisées. Cependant, OpenShift Container Platform ne peut pas identifier toutes les instances, en particulier les charges de travail qui sont inactives ou les outils externes qui sont utilisés. Il est de la responsabilité de l'administrateur d'évaluer correctement toutes les charges de travail et autres intégrations pour les instances d'API supprimées.

5.2.1. Examen des alertes pour identifier les utilisations d'API supprimées

Deux alertes sont déclenchées lorsqu'une API est utilisée et seront supprimées dans la prochaine version :

  • APIRemovedInNextReleaseInUse - pour les API qui seront supprimées dans la prochaine version d'OpenShift Container Platform.
  • APIRemovedInNextEUSReleaseInUse - pour les API qui seront supprimées dans la prochaine version d'OpenShift Container Platform Extended Update Support (EUS).

Si l'une de ces alertes se déclenche dans votre cluster, examinez les alertes et prenez des mesures pour les supprimer en migrant les manifestes et les clients API afin d'utiliser la nouvelle version de l'API.

Utilisez l'API APIRequestCount pour obtenir davantage d'informations sur les API utilisées et les charges de travail qui utilisent les API supprimées, car les alertes ne fournissent pas ces informations. En outre, certaines API peuvent ne pas déclencher ces alertes, mais sont tout de même capturées par APIRequestCount. Les alertes sont réglées pour être moins sensibles afin d'éviter la fatigue des alertes dans les systèmes de production.

5.2.2. Utiliser APIRequestCount pour identifier les utilisations d'API supprimées

Vous pouvez utiliser l'API APIRequestCount pour suivre les demandes d'API et vérifier si l'une d'entre elles utilise l'une des API supprimées.

Conditions préalables

  • Vous devez avoir accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin.

Procédure

  • Exécutez la commande suivante et examinez la colonne REMOVEDINRELEASE du résultat pour identifier les API supprimées qui sont actuellement utilisées :

    $ oc get apirequestcounts
    Copy to Clipboard

    Exemple de sortie

    NAME                                                                      REMOVEDINRELEASE   REQUESTSINCURRENTHOUR   REQUESTSINLAST24H
    ...
    poddisruptionbudgets.v1.policy                                                               391                     8114
    poddisruptionbudgets.v1beta1.policy                                       1.25               2                       23
    podmonitors.v1.monitoring.coreos.com                                                         3                       70
    podnetworkconnectivitychecks.v1alpha1.controlplane.operator.openshift.io                     612                     11748
    pods.v1                                                                                      1531                    38634
    podsecuritypolicies.v1beta1.policy                                        1.25               3                       39
    podtemplates.v1                                                                              2                       79
    preprovisioningimages.v1alpha1.metal3.io                                                     2                       39
    priorityclasses.v1.scheduling.k8s.io                                                         12                      248
    prioritylevelconfigurations.v1beta1.flowcontrol.apiserver.k8s.io          1.26               3                       86
    ...
    Copy to Clipboard

    Important

    Vous pouvez ignorer les entrées suivantes qui apparaissent dans les résultats :

    • Les utilisateurs system:serviceaccount:kube-system:generic-garbage-collector et system:serviceaccount:kube-system:namespace-controller peuvent apparaître dans les résultats car ces services invoquent toutes les API enregistrées lorsqu'ils recherchent des ressources à supprimer.
    • Les utilisateurs system:kube-controller-manager et system:cluster-policy-controller peuvent apparaître dans les résultats parce qu'ils parcourent toutes les ressources tout en appliquant diverses politiques.

    Vous pouvez également utiliser -o jsonpath pour filtrer les résultats :

    $ oc get apirequestcounts -o jsonpath='{range .items[ ?(@.status.removedInRelease!="\N")]}{.status.removedInRelease}{\N-"\N-"\N"}{\N-"\N"\N"\N"}{\N-"\N"\N"\N"\N"\N"\N"\N"\N"\N"\N"\N"\N "end}
    Copy to Clipboard

    Exemple de sortie

    1.26	flowschemas.v1beta1.flowcontrol.apiserver.k8s.io
    1.26	horizontalpodautoscalers.v2beta2.autoscaling
    1.25	poddisruptionbudgets.v1beta1.policy
    1.25	podsecuritypolicies.v1beta1.policy
    1.26	prioritylevelconfigurations.v1beta1.flowcontrol.apiserver.k8s.io
    Copy to Clipboard

5.2.3. Utiliser APIRequestCount pour identifier les charges de travail qui utilisent les API supprimées

Vous pouvez examiner la ressource APIRequestCount pour une version donnée de l'API afin d'identifier les charges de travail qui utilisent l'API.

Conditions préalables

  • Vous devez avoir accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin.

Procédure

  • Exécutez la commande suivante et examinez les champs username et userAgent pour identifier les charges de travail qui utilisent l'API :

    $ oc get apirequestcounts <resource>.<version>.<group> -o yaml
    Copy to Clipboard

    Par exemple :

    $ oc get apirequestcounts poddisruptionbudgets.v1beta1.policy -o yaml
    Copy to Clipboard

    Vous pouvez également utiliser -o jsonpath pour extraire les valeurs username et userAgent d'une ressource APIRequestCount:

    $ oc get apirequestcounts poddisruptionbudgets.v1beta1.policy \
      -o jsonpath='{range .status.currentHour..byUser[*]}{..byVerb[*].verb}{","}{.username}{","}{.userAgent}{"\n"}{end}' \
      | sort -k 2 -t, -u | column -t -s, -NVERBS,USERNAME,USERAGENT
    Copy to Clipboard

    Exemple de sortie

    VERBS  USERNAME                                                                       USERAGENT
    watch  system:serviceaccount:openshift-operators:3scale-operator                      manager/v0.0.0
    watch  system:serviceaccount:openshift-operators:datadog-operator-controller-manager  manager/v0.0.0
    Copy to Clipboard

Retour au début
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. Découvrez nos récentes mises à jour.

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 le Blog 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.

Theme

© 2025 Red Hat