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 Copier lienLien copié sur presse-papiers!
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 Copier lienLien copié sur presse-papiers!
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
REMOVEDINRELEASEdu résultat pour identifier les API supprimées qui sont actuellement utilisées :oc get apirequestcounts
$ oc get apirequestcountsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ImportantVous pouvez ignorer les entrées suivantes qui apparaissent dans les résultats :
-
Les utilisateurs
system:serviceaccount:kube-system:generic-garbage-collectoretsystem:serviceaccount:kube-system:namespace-controllerpeuvent 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-manageretsystem:cluster-policy-controllerpeuvent apparaître dans les résultats parce qu'ils parcourent toutes les ressources tout en appliquant diverses politiques.
Vous pouvez également utiliser
-o jsonpathpour 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}$ 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 Copied! Toggle word wrap Toggle overflow 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
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.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Les utilisateurs
5.2.3. Utiliser APIRequestCount pour identifier les charges de travail qui utilisent les API supprimées Copier lienLien copié sur presse-papiers!
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
usernameetuserAgentpour identifier les charges de travail qui utilisent l'API :oc get apirequestcounts <resource>.<version>.<group> -o yaml
$ oc get apirequestcounts <resource>.<version>.<group> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Par exemple :
oc get apirequestcounts poddisruptionbudgets.v1beta1.policy -o yaml
$ oc get apirequestcounts poddisruptionbudgets.v1beta1.policy -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez également utiliser
-o jsonpathpour extraire les valeursusernameetuserAgentd'une ressourceAPIRequestCount: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$ 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,USERAGENTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow