¿Por qué el espacio de nombres donde está desplegado mi operador de almacenamiento se ha quedado atascado en el estado Terminando?
Resolver los espacios de nombres que quedan bloqueados en el estado Terminating tras eliminar una configuración de almacenamiento de Satellite.
Cuando se elimina una configuración de almacenamiento de un clúster, se eliminan recursos como, por ejemplo, pods de operador y clases de almacenamiento, pero el espacio de nombres se queda atascado en el estado Terminating.
Los finalizadores impiden que se eliminen los recursos restantes del espacio de nombres y el propio espacio de nombres.
Siga los pasos siguientes para eliminar los recursos y el espacio de nombres.
No modifiques ni elimines los finalizadores de recursos en el espacio kube-system de nombres.
- Obtenga el espacio de nombres que se ha quedad atascado en el estado
Terminating. Apunte los recursos listados en la secciónmessage: 'Some resources are remaining:.
Salida de ejemplo para un espacio de nombres Trident de NetAppoc get ns <namespace> -o yamlstatus: conditions: - lastTransitionTime: "2021-05-18T17:40:31Z" message: All resources successfully discovered reason: ResourcesDiscovered status: "False" type: NamespaceDeletionDiscoveryFailure - lastTransitionTime: "2021-05-18T17:40:31Z" message: All legacy kube types successfully parsed reason: ParsedGroupVersions status: "False" type: NamespaceDeletionGroupVersionParsingFailure - lastTransitionTime: "2021-05-18T17:40:31Z" message: All content successfully deleted, may be waiting on finalization reason: ContentDeleted status: "False" type: NamespaceDeletionContentFailure - lastTransitionTime: "2021-05-18T17:40:31Z" message: 'Some resources are remaining: tridentbackends.trident.netapp.io has 1 resource instances, tridentnodes.trident.netapp.io has 3 resource instances, tridentversions.trident.netapp.io has 1 resource instances, tridentvolumes.trident.netapp.io has 1 resource instances' reason: SomeResourcesRemain status: "True" type: NamespaceContentRemaining - lastTransitionTime: "2021-05-18T17:40:31Z" message: 'Some content in the namespace has finalizers remaining: trident.netapp.io in 6 resource instances' reason: SomeFinalizersRemain status: "True" type: NamespaceFinalizersRemaining phase: Terminating - Ejecute el comando
oc getpara obtener los recursos pendientes de eliminación. En la salida de ejemplo, el recursotridentbackends.trident.netapp.iolista 1 instancia de recurso. Repite este paso para cada recurso que enumere instancias en la secciónmessagedel YAML del espacio de nombres que has recuperado anteriormente.
Comando de ejemplo para el recursooc get <resource> -n <namespace>tridentbackends.trident.netapp.io.
Ejemplo de salidaoc get tridentbackends.trident.netapp.io -n tridenttbe-bhb5rpvc-26d97ecd-c268-47ff-a2fd-a0a1a51a9e12 - Para cada recurso que incluya instancias, ejecute el siguiente comando
kubectl patchpara eliminar los finalizadores y borrar el recurso. Después de que se hayan aplicado parches a todos los recursos, se elimina el espacio de nombres.Comando de ejemplo para el recursokubectl -n <namespace> patch <resource>/<instance> -p '{"metadata":{"finalizers":[]}}' --type=mergetridentbackends.trident.netapp.io.kubectl -n trident patch tridentbackends.trident.netapp.io/tbe-bhb5r -p '{"metadata":{"finalizers":[]}}' --type=merge - Después de eliminar los finalizadores en los recursos restantes, ejecute el mandato
oc get nspara verificar que se ha eliminado el espacio de nombres.oc get ns