Risolvere i problemi relativi a Kf

Segui questi passaggi 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 qualcos\'altro.

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.

  1. 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
    
  2. Ottieni 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 di seguito:

    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 è estremamente elevato, è probabile che due controller Kubernetes stiano litigando per l'oggetto. Controlla il tuo cluster per verificare se all'oggetto vengono applicati criteri che potrebbero modificarlo dallo stato desiderato.
    2. Controlla se lo spazio dei nomi a cui appartiene l'oggetto è in fase di eliminazione. Se è che l'oggetto non può essere riconciliato.
    3. 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 mediante kf doctor.
    4. Verifica che il campo metadata.generation corrisponda status.observedGeneration. In caso contrario, verifica che il cluster e i controller sono integri da kf doctor.
    5. Verifica la presenza di errori nell'elenco status.conditions in base a questo elenco di cause comuni degli errori:
    • NotOwned: nel cluster o nello spazio dei nomi esiste un'altra risorsa come quella che questo oggetto sta tentando 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 aggiornamenti da Kubernetes abbastanza rapidamente. Verifica l'integrità di Kubernetes in un cluster Kubernetes.
    • ReconciliationError: il controller Kf non può la risorsa figlio necessaria. Verifica che il cluster sia in stato di salute, che Kf sia in esecuzione e che non siano applicati criteri che impediscano a Kf di creare l'oggetto a cui fa riferimento il messaggio.

    L'oggetto non viene eliminato

    1. Verifica che metadata.deletionTimestamp dell'oggetto sia impostato. Se non lo fosse impostato, l'eliminazione richiesta non è riuscita.
    2. Verifica che il valore metadata.deletionTimestamp dell'oggetto sia nel passato. Se è nel futuro, l'oggetto potrebbe non essere eliminato.
    3. 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.
    4. 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.