Risoluzione dei problemi di ServiceInstances Kf

Segui questi passaggi per risolvere i vari problemi che possono verificarsi durante l'utilizzo di Kf ServiceInstances.

L'eliminazione dell'oggetto è bloccata

Esegui questo comando per ottenere le informazioni sulle risorse, quindi verifica le cause elencate di seguito:

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

L'interfaccia a riga di comando kf può aiutarti a verificare alcuni problemi:

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME
Possibile causaSoluzione
Il timestamp dell'eliminazione è nel futuro.

Con un disallineamento orologio, metadata.deletionTimestamp potrebbe essere ancora nel futuro. Attendi qualche minuto per vedere se l'oggetto è stato eliminato.

Nell'oggetto sono presenti finalizzatori.

Nell'oggetto sono presenti i finalizzatori, che devono essere rimossi dal controller che li imposta prima che l'oggetto venga eliminato.

Se vuoi forzare un'eliminazione senza attendere i finalizzatori, modifica l'oggetto per rimuoverlo dall'array metadata.finalizers.

Avviso: la rimozione dei finalizzatori senza consentire il completamento dei controller potrebbe causare errori, problemi di sicurezza, perdita di dati o risorse orfane.

Potrebbero esistere oggetti dipendenti.

L'oggetto potrebbe essere in attesa dell'eliminazione dei dipendenti prima di essere eliminato. Per saperne di più, consulta la guida alla garbage collection di Kubernetes. Chiedi a un amministratore di controllare tutti gli oggetti nello spazio dei nomi e nel cluster per verificare se uno di loro sta bloccando l'eliminazione.

Se devi rimuovere l'oggetto senza attendere i dipendenti, utilizza kubectl delete con il flag cascade impostato su --cascade=orphan.

Deviazione dello stato di generazione degli oggetti

Esegui questo comando per ottenere le informazioni sulle risorse, quindi verifica le cause elencate di seguito:

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

L'interfaccia a riga di comando kf può aiutarti a verificare alcuni problemi:

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME
Possibile causaSoluzione
L'oggetto ha una deviazione della versione di generazione.

In genere questo errore si verifica quando il controller Kf non ha letto la versione più recente dell'oggetto. In genere questo errore viene recuperato autonomamente una volta che le repliche Kubernetes raggiungono la coerenza finale e di solito non richiede alcuna azione da parte degli utenti.

Riconciliazione degli oggetti non riuscita

Esegui questo comando per ottenere le informazioni sulle risorse, quindi verifica le cause elencate di seguito:

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

L'interfaccia a riga di comando kf può aiutarti a verificare alcuni problemi:

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME
Possibile causaSoluzione
L'oggetto presenta TemplateError

Questo errore di solito si verifica se l'utente ha inserito una proprietà non valida nella specifica della risorsa personalizzata o se la configurazione nello spazio/cluster non è valida.

Per comprendere la causa principale, l'utente può leggere il messaggio di errore più lungo in status.conditions dell'oggetto utilizzando il comando:kubectl describe RESOURCE_TYPE RESOURCE_NAME -n space. Ad esempio: kubectl describe serviceinstance my-service -n my-space.

L'oggetto presenta un errore ChildNotOwned (Conflitti di nomi)

Questo errore di solito indica che gli oggetti che il controller sta cercando di creare esistono già. Questo accade se l'utente ha creato una risorsa K8s che ha lo stesso nome di quella che il controller sta tentando di creare; ma più spesso accade se l'utente elimina una risorsa, il controller Kf tenta di ricrearla. Se una risorsa figlio è ancora in giro, il suo proprietario sarà la risorsa precedente che non esiste più.

Per risolvere il problema, è consigliabile che l'utente elimini la risorsa interessata e la crei di nuovo. Per eliminare l'oggetto, utilizza un comando di eliminazione Kf o il comando kubectl delete RESOURCE_TYPE RESOURCE_NAME -n SPACE. Ad esempio, kf delete-space my-space o kubectl delete space my-space.

Per ricreare una risorsa, usa un comando Kf. Ad esempio: kf create-space my-space.

L'oggetto presenta un errore di riconciliazione

Questo errore di solito indica che si è verificato un problema con la chiamata HTTP effettuata (dal controller Kf) al servizio API Kubernetes per creare/aggiornare la risorsa.

Per comprendere la causa principale, l'utente può leggere il messaggio di errore più lungo in status.conditions dell'oggetto utilizzando il comando:kubectl describe RESOURCE_TYPE RESOURCE_NAME -n space. Ad esempio: kubectl describe serviceinstance my-service -n my-space.

Impossibile eseguire la riconciliazione delle risorse di supporto

Esegui questo comando per ottenere le informazioni sulle risorse, quindi verifica le cause elencate di seguito:

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

L'interfaccia a riga di comando kf può aiutarti a verificare alcuni problemi:

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME
Possibile causaSoluzione
Errore DeprovisionFailed della risorsa di supporto.

In genere questo errore si verifica quando non si riesce a eseguire il deprovisioning delle risorse di backup (database MySQL ospitato su un server OSB esterno). Kf non è in grado di determinare in modo sicuro se è stato eseguito il deprovisioning della risorsa dipendente.

Per risolvere il problema, consigliamo all'utente di leggere il messaggio di errore dettagliato nella status.conditions dell'oggetto utilizzando il comando:kubectl describe RESOURCE_TYPE RESOURCE_NAME -n space. Ad esempio: kubectl describe servipropogatesceinstance my-service -n my-space.

Una volta confermato il messaggio di errore, chiedi a un amministratore di controllare la risorsa di supporto e di pulirla manualmente. Una volta stabilito che la risorsa di supporto è stata rilasciata in modo sicuro, la risorsa Kf interessata può essere riconciliata correttamente rimuovendo manualmente Finalizer dalla specifica dell'oggetto, utilizzando il comando kubectl edit serviceinstance my-service -n my-space.