Errori durante l'installazione di Kf
Errore del server (richiesta errata): carattere non valido
Se visualizzi questo errore durante l'impostazione dei valori predefiniti di configurazione, è probabile che il valore dell'env var ${DOMAIN}
utilizzato nel comando includa un "$" con caratteri di escape. Utilizza le virgolette singole per definire un dominio con il nome di uno spazio o un'altra sostituzione:
Error from server (BadRequest): invalid character '$' in string escape code
Errori con gli oggetti Kubernetes Kf
Segui queste istruzioni per risolvere i problemi di Kf Kubernetes di oggetti strutturati.
Trova il nome del tipo di risorsa Kubernetes in base al quale vuoi risolvere i problemi che elenca tutte le risorse Kf:
kubectl api-resources --api-group=kf.dev
Output di esempio:
NAME SHORTNAMES APIGROUP NAMESPACED KIND apps kf.dev true App builds kf.dev true Build clusterservicebrokers kf.dev false ClusterServiceBroker routes kf.dev true Route servicebrokers kf.dev true ServiceBroker serviceinstancebindings kf.dev true ServiceInstanceBinding serviceinstances kf.dev true ServiceInstance spaces kf.dev false Space
Recupera l'istanza della risorsa di cui vuoi risolvere i problemi utilizzando
kubectl
. Se l'oggetto non si trova in uno spazio dei nomi, ometti il flag-n
:kubectl get api-resource-name.kf.dev object-name -n space-name -o yaml
Ad esempio:
kubectl get apps.kf.dev my-app -n my-space -o yaml
Seleziona il tuo problema dalle schede seguenti:
L'oggetto non è in fase di riconciliazione
- Controlla il valore di
metadata.generation
. Questo numero è incrementato ogni volta che l'oggetto viene aggiornato. Se il numero è estremamente alto, è probabile che due controller Kubernetes stiano litigando per l'oggetto. Controllo per vedere se all'oggetto vengono applicati criteri il che potrebbe modificarlo dallo stato desiderato. - Verifica se lo spazio dei nomi a cui appartiene l'oggetto è in fase di eliminazione. Se è che l'oggetto non può essere riconciliato.
- Verifica che il campo
status.observedGeneration
esista. In caso contrario, il controller potrebbe non essere ancora stato eseguito sull'oggetto. Convalida che il cluster e i controller siano integri mediantekf doctor
. - Verifica che il campo
metadata.generation
corrispondastatus.observedGeneration
. In caso contrario, verifica che il cluster e i controller sono integri dakf doctor
. - Verifica la presenza di errori nell'elenco
status.conditions
in base a questo elenco di cause comuni degli errori:
NotOwned
: esiste un'altra risorsa nel cluster o come quello che questo oggetto sta cercando di creare. Leggi il messaggio per trovare il nome duplicato e rinominare la risorsa in conflitto o l'oggetto Kf.TemplateError
: è presente un errore di configurazione nella Kf la specifica della risorsa o la configurazione Kf che risorsa secondaria da riconciliare in modo errato. Convalida le impostazioni di l'oggetto Kf e l'oggetto Kf spazio.CacheOutdated
: il controller Kf non riceve Kubernetes rapidamente. Controlla l'integrità di Kubernetes in un cluster Kubernetes.ReconciliationError
: il controller Kf non può la risorsa figlio necessaria. Controlla che il cluster sia integro, Kf è in esecuzione e che nessun criterio applicato che stia impedendo Kf dalla creazione dell'oggetto a cui si fa riferimento nel messaggio.
L'oggetto non viene eliminato
- Verifica che sia stato impostato il valore
metadata.deletionTimestamp
dell'oggetto. Se non lo fosse impostato, l'eliminazione richiesta non è riuscita. - Verifica che il valore
metadata.deletionTimestamp
dell'oggetto sia nel passato. Se si tratta in futuro, l'oggetto non può essere eliminato. - Verifica se nell'oggetto esiste un elenco
metadata.finalizers
. Se i finalizzatori sono l'oggetto deve attendere la rimozione prima che venga eliminati. Se vuoi forzare un'eliminazione senza attendere il comando finalizzatori, modifica l'oggetto per rimuoverli. - Possono esistere oggetti secondari che impediscono all'oggetto di essere eliminati. Chiedi a un amministratore di controllare tutti gli oggetti nello spazio dei nomi per vedere se uno di questi deve essere prima eliminato manualmente.
- Controlla il valore di