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.
-
Assicuratevi di rivedere gli scenari comuni in cui potreste dover modificare le vostre applicazioni per poterle distribuire sui cluster Red Hat OpenShift.
-
Ricerca anomalie nelle risorse di distribuzione o nel servizio eseguendo il comando
describe.oc describe service <service_name> -
Controlla se i contenitori sono bloccati nello stato
ContainerCreating. -
Verifica se il cluster è nello stato
Critical. Se il cluster è in uno statoCritical, controlla le regole del firewall e verifica che il master possa comunicare con i nodi di lavoro. -
Verifica che il servizio sia in ascolto sulla porta corretta.
- Richiama il nome del pod.
oc get pods - Accedi al contenitore.
oc exec -it <pod_name> -- /bin/bash - 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>
- Richiama il nome del pod.
-
Verifica che il servizio sia collegato correttamente ai pod.
- Richiama il nome del pod.
oc get pods - Accedi al contenitore.
oc exec -it <pod_name> -- /bin/bash - Esegui curl per la porta e l'indirizzo IP del cluster del servizio.
curl <cluster_IP>:<port> - 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=fooma il servizio potrebbe avere il selettorerun=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.
- 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
- Richiama il nome del pod.
-
Per i servizi Ingress, verifica che il servizio sia accessibile dall'interno del cluster.
- Richiama il nome del pod.
oc get pods - Accedi al contenitore.
oc exec -it <pod_name> -- /bin/bash - 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>
- Richiama il nome del pod.