L’objet CSM associé à un déploiement de pilotes reste à l’état d’échec même lorsque le déploiement réussit
Sommaire: Dans CSM Operator v1.4.1, l’objet CSM associé à un déploiement de pilotes reste en état d’échec, même lorsque le déploiement réussit.
Symptômes
[root@master-1-Zaglt7mQUY8Wg e2e]# k describe csm -n test-vxflexos test-vxflexos Name: test-vxflexos Namespace: test-vxflexos … Status: Controller Status: Available: 0 Desired: 1 Failed: 1 Node Status: Available: 2 Desired: 2 Failed: 0 State: Failed Events: Type Reason Age From Message Normal Updated 3m12s csm Object finalizer is added Normal Completed 3m11s (x2 over 3m11s) csm install/update storage component: test-vxflexos completed OK Normal Completed 3m11s csm Driver deployment running OK Warning Updated 3m11s csm at 1707491918292836118 Pod error details error message for default-source-cluster PodInitializing= Warning Updated 3m11s csm at 1707491918387122708 Pod error details error message for default-source-cluster PodInitializing= Warning Updated 3m11s (x3 over 3m11s) csm Failed install: Operation cannot be fulfilled on containerstoragemodules.storage.dell.com "test-vxflexos": the object has been modified; please apply your changes to the latest version and try again Warning Updated 3m11s csm at 1707491918502243242 Pod error details error message for default-source-cluster PodInitializing= Warning Updated 3m11s csm at 1707491918603289132 Pod error details error message for default-source-cluster PodInitializing= Warning Updated 3m11s csm at 1707491918633307657 Pod error details error message for default-source-cluster PodInitializing= Warning Updated 3m11s csm at 1707491918702738940 Pod error details error message for default-source-cluster PodInitializing= Warning Updated 3m10s csm at 1707491919356615788 Pod error details error message for default-source-cluster PodInitializing= Warning Updated 3m10s csm at 1707491919773768318 Pod error details error message for default-source-cluster PodInitializing= Warning Updated 3m9s (x3 over 3m9s) csm (combined from similar events): at 1707491920766553739 Pod error details error message for default-source-cluster PodInitializing= Normal Completed 3m8s csm at 1707491921372865165 Driver pods running OK Normal Completed 3m8s csm Driver daemonset running OK [root@master-1-Zaglt7mQUY8Wg e2e]# k get pods -n test-vxflexos NAMESPACE NAME READY STATUS RESTARTS AGE test-vxflexos test-vxflexos-controller-797f95f7c7-xfs7r 5/5 Running 0 3m24s test-vxflexos test-vxflexos-node-js29j 2/2 Running 0 3m24s test-vxflexos test-vxflexos-node-pg75s 2/2 Running 0 3m24s [root@master-1-Zaglt7mQUY8Wg e2e]# kubectl get csm -A NAMESPACE NAME CREATIONTIME CSIDRIVERTYPE CONFIGVERSION STATE test-vxflexos test-vxflexos 4m19s powerflex v2.9.1 Failed
Cause
Il existe des gestionnaires de mise à jour pour le daemonset (pods de nœud) et de déploiement (pods de contrôleur). Ces gestionnaires essaient tous les deux de mettre à jour l’état simultanément. Par exemple, si le pod de contrôleur est passé à l’état Ready alors qu’un pod de nœud est passé de Init à ContainerCreating. Si le gestionnaire de déploiement obtenait d’abord le mutex de mise à jour de l’état, il écrivait son état mis à jour. Mais lorsque le daemonset Le gestionnaire a obtenu le mutex par la suite, il a écrasé l’état du contrôleur à l’état en échec.
Résolution
Résolution:
Les ingénieurs ont résolu ce problème dans le correctif 1.4.2 de CSM Operator. Le correctif immédiat consiste à appliquer la routine de mise à jour qui permet de vérifier l’état du contrôleur avant la mise à jour.