Perché lo spazio dei nomi in cui è stato distribuito il mio operatore di archiviazione è bloccato nello stato Terminating ?

Risolvere i namespace rimasti bloccati nello stato “ Terminating ” dopo la rimozione di una configurazione di archiviazione “ Satellite ”.

Quando rimuovi una configurazione di archiviazione da un cluster, le risorse come i pod operatore e le classi di archiviazione vengono rimosse, ma lo spazio dei nomi è bloccato nello stato Terminating.

I finalizer impediscono l'eliminazione delle risorse rimanenti nello spazio dei nomi e dello spazio dei nomi stesso.

Effettuare le seguenti operazioni per rimuovere le risorse e lo spazio dei nomi.

Non modificare né eliminare i finalizzatori delle risorse nel namespace kube-system.

  1. Ottieni lo spazio dei nomi bloccato nello stato Terminating. Prendere nota delle risorse elencate nella sezione message: 'Some resources are remaining:.
    oc get ns <namespace> -o yaml
    
    Esempio di output per un namespace NetApp Trident
    status:
        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
    
  2. Eseguire il comando oc get per ottenere le risorse che sono in attesa di rimozione. Nell'output di esempio, la risorsa tridentbackends.trident.netapp.io elenca 1 istanza di risorsa. Ripeti questo passo per ciascuna risorsa che elenca le istanze nella sezione message dello spazio nomi YAML che hai richiamato in precedenza.
    oc get <resource> -n <namespace>
    
    Comando di esempio per la risorsa tridentbackends.trident.netapp.io.
    oc get tridentbackends.trident.netapp.io -n trident
    
    Output di esempio
    tbe-bhb5r
    
    pvc-26d97ecd-c268-47ff-a2fd-a0a1a51a9e12
    
  3. Per ogni risorsa che elenca le istanze, eseguire il seguente comando kubectl patch per rimuovere i finalizer ed eliminare la risorsa. Dopo aver corretto tutte le risorse, lo spazio dei nomi viene rimosso.
    kubectl -n <namespace> patch <resource>/<instance> -p '{"metadata":{"finalizers":[]}}' --type=merge
    
    Comando di esempio per la risorsa tridentbackends.trident.netapp.io.
    kubectl -n trident patch tridentbackends.trident.netapp.io/tbe-bhb5r -p '{"metadata":{"finalizers":[]}}' --type=merge
    
  4. Dopo aver rimosso i finalizer sulle restanti risorse, eseguire il comando oc get ns per verificare che lo spazio dei nomi sia stato rimosso.
    oc get ns