Debug delle distribuzioni dell'applicazione

Virtual Private Cloud Infrastruttura classica

Rivedi le opzioni di cui disponi per il debug delle tue distribuzioni dell'applicazione e per trovare le cause principali degli errori.

Prima di iniziare, assicurarsi di avere il ruolo di accesso al servizio IAM Writer o Manager IBM Cloud per il namespace in cui è distribuita l'applicazione.

  1. Assicuratevi di rivedere gli scenari comuni in cui potreste dover modificare le vostre applicazioni per poterle distribuire sui cluster Red Hat OpenShift.

  2. Ricerca anomalie nelle risorse di distribuzione o nel servizio eseguendo il comando describe.

    oc describe service <service_name>
    
  3. Controlla se i contenitori sono bloccati nello stato ContainerCreating.

  4. Verifica se il cluster è nello stato Critical. Se il cluster è in uno stato Critical, controlla le regole del firewall e verifica che il master possa comunicare con i nodi di lavoro.

  5. Verifica che il servizio sia in ascolto sulla porta corretta.

    1. Richiama il nome del pod.
      oc get pods
      
    2. Accedi al contenitore.
      oc exec -it <pod_name> -- /bin/bash
      
    3. Esegui curl per l'applicazione dall'interno del contenitore. Se la porta non è accessibile, il servizio potrebbe non essere in ascolto sulla porta corretta o l'applicazione potrebbe avere dei problemi. Aggiornare il file di configurazione del servizio con la porta corretta e distribuire nuovamente, oppure indagare su potenziali problemi con l'applicazione.
      curl localhost:<port>
      
  6. Verifica che il servizio sia collegato correttamente ai pod.

    1. Richiama il nome del pod.
      oc get pods
      
    2. Accedi al contenitore.
      oc exec -it <pod_name> -- /bin/bash
      
    3. Esegui curl per la porta e l'indirizzo IP del cluster del servizio.
      curl <cluster_IP>:<port>
      
    4. Se la porta o l'indirizzo IP non sono accessibili, ricerca gli endpoint del servizio.
      • Se non vengono elencati degli endpoint, il selettore del servizio non corrisponde ai pod. Ad esempio, la tua distribuzione dell'applicazione potrebbe avere l'etichetta app=foo ma il servizio potrebbe avere il selettore run=foo.
      • Se vengono elencati degli endpoint, ricerca il campo della porta di destinazione nel servizio e assicurati che sia la stessa di quella utilizzata dai pod. Ad esempio, la tua applicazione potrebbe essere in ascolto sulla porta 9080 ma il servizio potrebbe essere in ascolto sulla porta 80.
  7. Per i servizi Ingress, verifica che il servizio sia accessibile dall'interno del cluster.

    1. Richiama il nome del pod.
      oc get pods
      
    2. Accedi al contenitore.
      oc exec -it <pod_name> -- /bin/bash
      
    3. Esegui curl dell'URL specificato per il servizio Ingress. Se l'URL non è accessibile, controlla se è presente un errore con il firewall tra il cluster e l'endpoint esterno.
      curl <host_name>.<domain>