Risoluzione dei problemi relativi a Kf

Segui questa procedura per risolvere i vari problemi che possono verificarsi durante l'esecuzione di Kf.

Errori durante l'installazione di Kf

L'IP di Istio non è pronto

Questo può accadere se Istio impiega troppo tempo per ottenere un IP esterno. Attendi qualche minuto ed esegui di nuovo il passaggio di invio di Cloud Build. Tuttavia, è possibile che ci sia altro.

Errore del server (richiesta errata): carattere non valido

Se viene visualizzato questo errore durante l'impostazione dei valori predefiniti della configurazione, è probabile che il valore della variabile env ${DOMAIN} utilizzata nel comando includa il carattere di escape "$". Utilizza le virgolette singole per definire un dominio con un nome spazio o un'altra sostituzione:

Error from server (BadRequest): invalid character '$' in string escape code

Errori con gli oggetti Kf Kubernetes

Segui queste istruzioni per risolvere i problemi degli oggetti Kf Kubernetes.

  1. Per trovare il nome del tipo di risorsa Kubernetes di cui vuoi risolvere i problemi, 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
    
  2. 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
    
  3. Seleziona il tuo problema dalle schede seguenti:

    L'oggetto non è in fase di riconciliazione

    1. 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 sull'oggetto. Controlla il cluster per vedere se all'oggetto vengono applicati criteri che potrebbero cambiare lo stato desiderato.
    2. Verifica se lo spazio dei nomi a cui appartiene l'oggetto è in fase di eliminazione. In tal caso, l'oggetto potrebbe non essere riconciliato.
    3. Verifica che il campo status.observedGeneration esista. In caso contrario, il controller potrebbe non aver ancora eseguito l'esecuzione sull'oggetto. Verifica che il cluster e i controller siano integri utilizzando kf doctor.
    4. Verifica che il campo metadata.generation corrisponda al campo status.observedGeneration. In caso contrario, verifica che il cluster e i controller siano integri utilizzando kf doctor.
    5. 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 quella 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 errore di configurazione nella specifica della risorsa Kf o nella configurazione Kf che causa la riconciliazione errata della risorsa secondaria. Convalida le impostazioni dell'oggetto Kf e dello spazio Kf.
    • CacheOutdated: il controller Kf non riceve gli aggiornamenti da Kubernetes abbastanza velocemente. Verifica l'integrità del cluster Kubernetes.
    • ReconciliationError: il controller Kf non può creare la risorsa figlio necessaria. Verifica che il cluster sia integro, che Kf sia in esecuzione e che non siano applicati criteri che impediscono a Kf di creare l'oggetto indicato nel messaggio.

    L'oggetto non è in fase di eliminazione

    1. Verifica che il valore metadata.deletionTimestamp dell'oggetto sia stato impostato. Se non è stata impostata, l'eliminazione richiesta non ha funzionato.
    2. Verifica che il valore metadata.deletionTimestamp dell'oggetto sia nel passato. Se è nel futuro, l'oggetto non può essere eliminato.
    3. Controlla se esiste un elenco metadata.finalizers sull'oggetto. Se sono presenti i finalizzatori, l'oggetto deve attendere che vengano rimossi prima di essere eliminato. Se vuoi forzare l'eliminazione senza attendere i finalizzatori, modifica l'oggetto per rimuoverli.
    4. Possono esistere oggetti secondari che impediscono l'eliminazione dell'oggetto. Chiedi a un amministratore di controllare tutti gli oggetti nello spazio dei nomi e nel cluster per verificare se è necessario prima eliminarlo manualmente.