앱 배치 디버깅
가상 프라이빗 클라우드 클래식 인프라
앱 배치를 디버그해야 하는 옵션을 검토하고 실패의 근본 원인을 찾습니다.
시작하기 전에 앱이 배치된 네임스페이스에 대해 작성자 또는 관리자 IBM Cloud IAM 서비스 액세스 역할이 있는지 확인하십시오.
-
Red Hat OpenShift 클러스터에 배치할 수 있도록 앱을 수정해야 하는 공통 시나리오를 검토하십시오.
-
describe명령을 실행하여 서비스 또는 배치 리소스의 비정상 항목을 찾으십시오.oc describe service <service_name> -
클러스터가
Critical상태인지 확인하십시오. 클러스터가Critical상태이면 방화벽 규칙을 검사하고 마스터가 작업자 노드와 통신할 수 있는지 확인하십시오. -
서비스가 올바른 포트에서 청취하는지 확인하십시오.
- 팟(Pod)의 이름을 가져오십시오.
oc get pods - 컨테이너에 로그인하십시오.
oc exec -it <pod_name> -- /bin/bash - 컨테이너 내에서 앱을 curl하십시오. 포트에 액세스할 수 없는 경우 서비스가 올바른 포트에서 청취 중이지 않거나 앱에 문제가 있을 수 있습니다. 서비스의 구성 파일을 올바른 포트로 업데이트하고 다시 배포하거나 앱의 잠재적인 문제를 조사하세요.
curl localhost:<port>
- 팟(Pod)의 이름을 가져오십시오.
-
서비스가 팟(Pod)에 올바르게 링크되었는지 확인하십시오.
- 팟(Pod)의 이름을 가져오십시오.
oc get pods - 컨테이너에 로그인하십시오.
oc exec -it <pod_name> -- /bin/bash - 서비스의 클러스터 IP 주소 및 포트를 curl하십시오.
curl <cluster_IP>:<port> - IP 주소 및 포트에 액세스할 수 없는 경우 서비스의 엔드포인트를 살펴보십시오.
- 엔드포인트가 나열되지 않으면 서비스의 선택기가 팟(Pod)과 일치되지 않습니다. 예를 들어, 앱 배치에
app=foo레이블이 있을 수 있으나 서비스에는run=foo선택기가 있을 수 있습니다. - 엔드포인트가 나열된 경우 서비스의 대상 포트 필드를 살펴보고 대상 포트가 팟(Pod)에 사용된 것과 동일한지 확인하십시오. 예를 들어, 앱이 포트 9080에서 청취할 수 있으나 서비스는 포트 80에서 청취할 수 있습니다.
- 엔드포인트가 나열되지 않으면 서비스의 선택기가 팟(Pod)과 일치되지 않습니다. 예를 들어, 앱 배치에
- 팟(Pod)의 이름을 가져오십시오.
-
Ingress 서비스의 경우 클러스터 내에서 서비스에 액세스할 수 있는지 확인하십시오.
- 팟(Pod)의 이름을 가져오십시오.
oc get pods - 컨테이너에 로그인하십시오.
oc exec -it <pod_name> -- /bin/bash - Ingress 서비스에 대해 지정된 URL을 curl하십시오. URL에 액세스할 수 없는 경우 클러스터와 외부 엔드포인트 간의 방화벽 문제를 확인하십시오.
curl <host_name>.<domain>
- 팟(Pod)의 이름을 가져오십시오.