4.8. 문제 해결 및 디버깅
4.8.1. debug
실행 중인 애플리케이션을 디버깅하는 명령 쉘을 시작합니다.
$ oc debug -h
이미지 및 설정 문제를 디버깅할 때 실행 중인 Pod 구성의 정확한 사본을 가져오고 쉘을 사용하여 문제를 해결할 수 있습니다. 실패한 Pod가 시작되지 않고 rsh
또는 exec
에 액세스할 수 없으므로 debug
명령을 실행하면 해당 설정의 이산적 사본이 생성됩니다.
기본 모드는 참조된 Pod, 복제 컨트롤러 또는 배포 구성의 첫 번째 컨테이너 내에서 쉘을 시작하는 것입니다. 시작된 Pod는 라벨이 제거하고 명령이 /bin/sh
로 변경되었으며 준비 및 활성 상태 점검이 비활성화된 소스 포드의 사본입니다. 명령을 실행하려는 경우 --
및 명령을 추가하여 실행합니다. 명령을 전달해도 TTY가 생성되지 않거나 기본적으로 STDIN을 보내지 않습니다. 일반적인 방식으로 컨테이너 또는 Pod를 변경하는 데 다른 플래그가 지원됩니다.
컨테이너를 실행하는 일반적인 문제는 클러스터에서 root 사용자로 실행하지 못하도록 하는 보안 정책입니다. 이 명령을 사용하여 Pod를 루트가 아닌(- as-user
)로 실행하거나 루트가 아닌 Pod를 root로 실행(- as-root
)으로 실행할 수 있습니다.
원격 명령이 완료되거나 쉘을 중단할 때 디버그 Pod가 삭제됩니다.
4.8.1.1. 사용법
$ oc debug RESOURCE/NAME [ENV1=VAL1 ...] [-c CONTAINER] [options] [-- COMMAND]
4.8.1.2. 예제
현재 실행 중인 배포를 디버깅하려면 다음을 수행합니다.
$ oc debug dc/test
루트가 아닌 사용자로 배포 실행을 테스트하려면 다음을 수행합니다.
$ oc debug dc/test --as-user=1000000
두 번째
컨테이너에서 env
명령을 실행하여 실패한 특정 컨테이너를 디버깅하려면 다음을 수행합니다.
$ oc debug dc/test -c second -- /bin/env
디버그로 생성되는 Pod를 보려면 다음을 수행합니다.
$ oc debug dc/test -o yaml