Errori durante l'installazione di Kf
Errore del server (richiesta errata): carattere non valido
Se viene visualizzato questo errore durante l'impostazione delle impostazioni predefinite della configurazione, è probabile che il valore della variabile env ${DOMAIN}
utilizzato nel comando includa il carattere "$" con carattere di escape. Utilizza le virgolette singole per definire un dominio con un nome di 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 relativi agli oggetti Kubernetes.
Trova il nome del tipo di risorsa Kubernetes di cui vuoi risolvere i problemi elencando 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 problema dalle schede seguenti:
L'oggetto non è in fase di riconciliazione
- Controlla il valore di
metadata.generation
. Questo numero viene incrementato ogni volta che l'oggetto viene aggiornato. Se il numero è molto alto, è probabile che due controller Kubernetes stiano combattendo per l'oggetto. Controlla il cluster per vedere se all'oggetto sono stati applicati criteri che potrebbero cambiare lo stato desiderato. - Verifica se lo spazio dei nomi a cui appartiene l'oggetto è in fase di eliminazione. In caso affermativo, l'oggetto potrebbe non essere riconciliato.
- Verifica l'esistenza del campo
status.observedGeneration
. In caso contrario, il controller potrebbe non aver ancora eseguito l'oggetto. Verifica che il cluster e i controller siano integri utilizzandokf doctor
. - Verifica che il campo
metadata.generation
corrisponda al campostatus.observedGeneration
. In caso contrario, verifica che il cluster e i controller siano in stato integro utilizzandokf doctor
. - Verifica la presenza di errori nell'elenco
status.conditions
in base a questo elenco di motivi di errore comuni:
NotOwned
: esiste un'altra risorsa nel cluster o nello spazio dei nomi come quello che questo oggetto sta cercando di creare. Leggi il messaggio per trovare il nome duplicato e rinomina la risorsa in conflitto o l'oggetto Kf.TemplateError
: è presente un'errata configurazione nella specifica della risorsa Kf o nella configurazione Kf che causa un errore di riconciliazione della risorsa secondaria. Convalida le impostazioni dell'oggetto Kf e dello spazio Kf.CacheOutdated
: il controller Kf non riceve aggiornamenti da Kubernetes abbastanza velocemente. Controlla l'integrità del cluster Kubernetes.ReconciliationError
: il controller Kf non può creare la risorsa figlio necessaria. Controlla che il cluster sia integro, che Kf sia in esecuzione e che non siano stati applicati criteri che impediscono a Kf di creare l'oggetto indicato nel messaggio.
L'oggetto non è in fase di eliminazione
- Verifica che il
metadata.deletionTimestamp
dell'oggetto sia stato impostato. Se il criterio non è impostato, l'eliminazione richiesta non ha funzionato. - Controlla che il valore
metadata.deletionTimestamp
dell'oggetto sia nel passato. Se è nel futuro, l'oggetto non può essere eliminato. - Controlla se nell'oggetto esiste un elenco
metadata.finalizers
. Se sono presenti i finalizzatori, l'oggetto deve attendere che vengano rimossi prima di essere eliminato. Se vuoi forzare l'eliminazione senza attendere i finalizzanti, modifica l'oggetto per rimuoverli. - Potrebbero esistere oggetti secondari che ne impediscono l'eliminazione. Chiedi a un amministratore di controllare tutti gli oggetti nello spazio dei nomi e nel cluster per verificare se prima è necessario eliminarlo manualmente.
- Controlla il valore di